由于坏块导致DG的mrp0进程中断
1.Environment
11.2.0.4 ADG

2.Symptoms
DG的mrp0进程中断,重启后,还是卡住。查看alert,在1.47存在报错,进一步查看trc,发现0:09存在错误,和mrp0进程卡住的时间吻合。
11.2.0.4 adg
ORA-00600 [3020], [2393], [206563], [2189633251]
ORA-10567
ORA-10564
ORA-01110
ORA-10561

Sun Sep 26 01:47:41 2021
Archived Log entry 1219914 added for thread 1 sequence 1413483 ID 0x64e21606 dest 1:
Sun Sep 26 01:47:52 2021
Errors in file /data/app/oracle/diag/rdbms/XXX/XXX1/trace/XXX1_pr1q_21233804.trc (incident=556535):
ORA-00600: internal error code, arguments: [3020], [2393], [206563], [2189633251], [], [], [], [], [], [], [], []
ORA-10567: Redo is inconsistent with data block (file# 2393, block# 206563, file offset is unknown bytes)
ORA-10564: tablespace LIFEINDEX_T_L
ORA-01110: data file 2393: '+DATA/XXX/datafile/lifeindex_t_l.15681.1083761543'
ORA-10561: block type 'TRANSACTION MANAGED INDEX BLOCK', data object# 249021
Incident details in: /data/app/oracle/diag/rdbms/XXX/XXX1/incident/incdir_556535/XXX1_pr1q_21233804_i556535.trc
Sun Sep 26 01:48:04 2021
RFS[10]: Selected log 111 for thread 1 sequence 1413485 dbid 922980069 branch 789829078
Sun Sep 26 01:48:05 2021
Archived Log entry 1219915 added for thread 1 sequence 1413484 ID 0x64e21606 dest 1:
RFS[10]: Selected log 112 for thread 1 sequence 1413486 dbid 922980069 branch 789829078
Sun Sep 26 01:48:15 2021
Archived Log entry 1219916 added for thread 1 sequence 1413485 ID 0x64e21606 dest 1:
Sun Sep 26 01:48:21 2021
RFS[25]: Selected log 122 for thread 2 sequence 1327788 dbid 922980069 branch 789829078

3.Changes

4.Cause
出现了坏块

5.Solution
看trc的报错是00:09的时候,刚好是mrp0卡住的时间,应该逻辑坏块导致进程卡住了。和这篇mos能匹配上,查到是一个主键索引,可以跳过去

6.References
Stuck recovery of database ORA-00600[3020] (Doc ID 283269.1)
Resolving ORA-00752 or ORA-600 [3020] During Standby Recovery (Doc ID 1265884.1)

匹配
SQL> select name,value,unit,time_computed from v$dataguard_stats where name in ('transport lag','apply lag');

NAME VALUE UNIT TIME_COMPUTED
-------------------- -------------------- ------------------------------ ------------------------------
transport lag +00 00:00:00 day(2) to second(0) interval 09/26/2021 09:33:16
apply lag +00 09:24:12 day(2) to second(0) interval 09/26/2021 09:33:16

SELECT SEGMENT_NAME FROM DBA_EXTENTS WHERE FILE_ID= &file_number
AND &BLOCK_NUMBER BETWEEN BLOCK_ID AND BLOCK_ID+BLOCKS-1;

SEGMENT_NAME
---------------------------------------------------------------------------------
PK_T_XXXXXXXXODUCT

SELECT OWNER, OBJECT_NAME, SUBOBJECT_NAME, OBJECT_TYPE
FROM DBA_OBJECTS
WHERE DATA_OBJECT_ID = &Object_number;

SELECT OWNER, OBJECT_NAME, SUBOBJECT_NAME, OBJECT_TYPE
FROM DBA_OBJECTS
WHERE OBJECT_NAME = 'PK_T_XXXXXXXXODUCT';

OWNER OBJECT_NAME SUBOBJECT_NAME OBJECT_TYPE
------------------------------ --------------------------------------------------------------------------------------------------------------------------------
xxxxx PK_T_XXXXXXXXODUCT INDEX

操作:
SQL> RECOVER DATABASE ALLOW 1 CORRUPTION;
ORA-00283: recovery session canceled due to errors
ORA-10459: cannot start media recovery on standby database; conflicting state detected

alter database recover automatic standby database allow 1 corruption;
alter database open READ ONLY;
alter database recover managed standby database using current logfile disconnect from session;

--alert
Managed Standby Recovery not using Real Time Apply
ALLOW CORRUPTION option must use serial recovery
Sun Sep 26 11:02:51 2021
Media Recovery Log /data/arch/thread_2_seq_1327403.37691.1084234145
Media Recovery Log /data/arch/thread_1_seq_1413157.55611.1084234147
CORRUPTING BLOCK 206563 OF FILE 2393 AND CONTINUING RECOVERY
Errors in file /data/app/oracle/diag/rdbms/XXX/XXX1/trace/XXX1_ora_5768708.trc:
ORA-10567: Redo is inconsistent with data block (file# 2393, block# 206563, file offset is unknown bytes)
ORA-10564: tablespace LIFEINDEX_T_L
ORA-01110: data file 2393: '+DATA/XXX/datafile/lifeindex_t_l.15681.1083761543'
ORA-10561: block type 'TRANSACTION MANAGED INDEX BLOCK', data object# 249021

进一步分析
---select tracefile from v$process where addr in (select paddr from v$session where sid in (select sid from v$mystat));
Dump of the controlfiles
SQL> alter session set events 'immediate trace name controlf level 8';
Dump of the datafile headers:
SQL> alter session set events 'immediate trace name file_hdrs level 10';
Dump of the redo log headers:
SQL> alter session set events 'immediate trace name redohdr level 10';

由于坏块导致DG的mrp0进程中断的更多相关文章

  1. undo丢失恢复异常恢复,运维DBA反映Oracle数据库无法启动报错ORA-01157 ORA-01110,分析原因为Oracle数据库坏块导致

    本文转自 惜纷飞 大师. 模拟基表事务未提交数据库crash,undo丢失恢复异常恢复,运维DBA反映Oracle数据库无法启动报错ORA-01157 ORA-01110,分析原因为Oracle数据库 ...

  2. 案例:DG主库未设置force logging导致备库坏块

    DG搭建时,官方文档手册有明确提到要设置数据库为force_logging,防止有nologging操作日志记录不全导致备库应用时出现问题. 虽然是老生常谈的安装规范,但现实中总会遇到不遵守规范的场景 ...

  3. DG不同步,MRP0进程打不开

    问题描述:主库备库之前正常连接,但是昨天磁盘空间满了之后,由于不知什么原因将备库重做日志删了,今天早上发现DG不同步的报警. 当时思路如下:1.通过select thread#,low_sequenc ...

  4. 对Oracle数据库坏块的理解

    1.物理坏块和逻辑坏块 在数据库中有一个概念叫做数据块的一致性,Oracle的数据块的一致性包括了两个层次:物理一致性和逻辑一致性,如果一个数据块在这两个层次上存在不一致性,那就对应到了我们今天要要说 ...

  5. Oracle corrupt block(坏块) 详解

    转自:http://blog.csdn.net/tianlesoftware/article/details/5024966 一. 坏块说明 1.1 相关链接 在看坏块之前,先看几个相关的链接,在后面 ...

  6. ORA-01578和ORA-26040--NOLOGGING操作引起的坏块-错误解释和解决方案(文档ID 1623284.1)

    ORA-01578和ORA-26040--NOLOGGING操作引起的坏块-错误解释和解决方案(文档ID 1623284.1) (一)NOLOGGING操作引起的坏块(ORA-01578和ORA-26 ...

  7. 使用badblocks检测坏块

    命令格式 badblocks [-svw][-b <区块大小>][-o <输出文件>][磁盘装置][磁盘区块数 [启始区块]] 典型的命令如下 # 写测试, 数据安全 -c - ...

  8. 12 oracle 数据库坏块--物理坏块-ORA-01578/ORA-01110

    oracle 数据库坏块--物理坏块 数据坏块的类型物理坏块:通常是由于硬件损坏如磁盘异常导致.内存有问题.存储链有问题. IO有问题.文件系统有问题. Oracle本身的问题等逻辑坏块:可能都是软件 ...

  9. 【转】基于RMAN实现坏块介质恢复(blockrecover)

    本文转自:乐沙弥的世界 对于物理损坏的数据块,我们可以通过RMAN块介质恢复(BLOCK MEDIA RECOVERY)功能来完成受损块的恢复,而不需要恢复整个数据库或所有文件来修复这些少量受损的数据 ...

随机推荐

  1. 客户机与服务器TCP连接状态

    客户机:

  2. 未解决的html页面banner对不齐

    莫名其妙的问题,记录等待解决: 怎么讲呢?就是可能真的没有理解这句话,浏览器是否是需要这句话的,思考! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML ...

  3. 使用dom4j工具:设置输出格式compactFormat和PrettyPrint(六)

    package dom4j_write; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStre ...

  4. SpringCloud升级之路2020.0.x版-24.测试Spring Cloud LoadBalancer

    本系列代码地址:https://github.com/HashZhang/spring-cloud-scaffold/tree/master/spring-cloud-iiford 通过单元测试,我们 ...

  5. Promise.resolve( data)与Promise.reject( data )

    Promise.resolve( data)与Promise.reject( data ) 常用来生成已经决议失败或成功的promise实例: 1.Promise.reject(data)不管传递的是 ...

  6. 移动端 uni-app 滑动事件 精确判断手指滑动方向

    移动端根据手指滑动操作判断滑动方向 设计思路: 1.根据移动端touchstart和touchend方法获取手指触摸屏幕的开始坐标和结束坐标 2.根据两个坐标计算与水平方向的夹角 3.根据夹角判断当前 ...

  7. k8s 存活探针,滚动更新

    文章原文 存活探针 Kubelet使用liveness probe(存活探针)来确定何时重启容器.例如,当应用程序处于运行状态但无法做进一步操作,liveness探针将捕获到deadlock,重启处于 ...

  8. 基于Vue+Vuex+Vue-Router+axios+mint-ui的移动端电商项目

    第一步:安装Node 1.打开NodeJS的官网,下载和自己系统相配的NodeJS的安装程序,包括32位还是64位一定要选择好,否则会出现安装问题. 下载地址:https://nodejs.org/e ...

  9. 眼镜选款新方法,用AR+Scene技术实现3D虚拟试戴

    互联网和智慧终端的普及促进了电商的产生和蓬勃发展,而新技术的产生,则推动着电商领域的不断升级.疫情使得人们更加习惯于使用电商进行购物,但对传统的线上购物模式已经产生了一些厌倦,电商市场急需模式上的变革 ...

  10. 第07课:GDB 常用命令详解(下)

    本课的核心内容: disassemble 命令 set args 和 show args 命令 tbreak 命令 watch 命令 display 命令 disassemble 命令 当进行一些高级 ...