由于坏块导致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. cmd进入pycharm所创建的虚拟环境

    进入cmd命令,进入虚拟环境所在文件夹.(pycharm每创建一个新项目就会创建一个虚拟环境,位于项目下venv下Script) E:\virtualenv\crawl1\Scripts>act ...

  2. vue3.0入门(一)

    前言 最近在b站上学习了飞哥的vue教程 学习案例已上传,下载地址 使用方式 使用在线cdn 下载js文件并自托管,引入到项目后使用 使用npm安装后,用cli来构建项目 声明式渲染 Vue2需引入v ...

  3. asp获取当前页面url

    <%Function GetLocationURL() Dim Url Dim ServerPort,ServerName,ScriptName,QueryString ServerName = ...

  4. 大天使之剑H5游戏超详细图文架设教程

    引言 想体验传奇游戏霸服的快乐吗?想体验满级VIP的尊贵吗?想体验一刀99999的爽快吗?各种极品装备装备.翅膀.宠物通通给你,就在大天使之剑! 本文讲解大天使之剑H5游戏的架设教程,想研究H5游戏如 ...

  5. 痞子衡嵌入式:MCUXpresso IDE下SDK工程在Build配置上与IAR,MDK差异

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是MCUXpresso IDE下SDK工程在Build配置上与IAR,MDK差异. 恩智浦 SW 团队每个季度都会公布 SDK.Tool ...

  6. 自定义Listener

    前言 为什么要自定义Listener? 通过自定义,可以在程序启动过程中监听特定事件,再回调处理逻辑. 自定义SpringApplicationRunListener 1.创建自定义SpringApp ...

  7. JS_DOM操作之常用事件

    1 - onload 事件:加载完成后立即执行 <!DOCTYPE html> <html lang="en"> <head> <meta ...

  8. ☕【Java技术指南】「并发编程专题」Fork/Join框架基本使用和原理探究(基础篇)

    前提概述 Java 7开始引入了一种新的Fork/Join线程池,它可以执行一种特殊的任务:把一个大任务拆成多个小任务并行执行. 我们举个例子:如果要计算一个超大数组的和,最简单的做法是用一个循环在一 ...

  9. 为何GRE可以封装组播报文而IPSEC却不行?

    Author       : Email         : vip_13031075266@163.com Date          : 2021.01.24 Copyright : 未经同意不得 ...

  10. Linux proc文件系统小记

    序言: 当linux系统存在多个网口时(也可以是一个网口配置两个IP),每个网口配置不同的IP地址,并且分别连接到不同的电脑上,电脑分别配置与相连的网口统一网段的IP且将电脑网关设置为linux的网口 ...