由于坏块导致DG的mrp0进程中断
由于坏块导致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进程中断的更多相关文章
- undo丢失恢复异常恢复,运维DBA反映Oracle数据库无法启动报错ORA-01157 ORA-01110,分析原因为Oracle数据库坏块导致
本文转自 惜纷飞 大师. 模拟基表事务未提交数据库crash,undo丢失恢复异常恢复,运维DBA反映Oracle数据库无法启动报错ORA-01157 ORA-01110,分析原因为Oracle数据库 ...
- 案例:DG主库未设置force logging导致备库坏块
DG搭建时,官方文档手册有明确提到要设置数据库为force_logging,防止有nologging操作日志记录不全导致备库应用时出现问题. 虽然是老生常谈的安装规范,但现实中总会遇到不遵守规范的场景 ...
- DG不同步,MRP0进程打不开
问题描述:主库备库之前正常连接,但是昨天磁盘空间满了之后,由于不知什么原因将备库重做日志删了,今天早上发现DG不同步的报警. 当时思路如下:1.通过select thread#,low_sequenc ...
- 对Oracle数据库坏块的理解
1.物理坏块和逻辑坏块 在数据库中有一个概念叫做数据块的一致性,Oracle的数据块的一致性包括了两个层次:物理一致性和逻辑一致性,如果一个数据块在这两个层次上存在不一致性,那就对应到了我们今天要要说 ...
- Oracle corrupt block(坏块) 详解
转自:http://blog.csdn.net/tianlesoftware/article/details/5024966 一. 坏块说明 1.1 相关链接 在看坏块之前,先看几个相关的链接,在后面 ...
- ORA-01578和ORA-26040--NOLOGGING操作引起的坏块-错误解释和解决方案(文档ID 1623284.1)
ORA-01578和ORA-26040--NOLOGGING操作引起的坏块-错误解释和解决方案(文档ID 1623284.1) (一)NOLOGGING操作引起的坏块(ORA-01578和ORA-26 ...
- 使用badblocks检测坏块
命令格式 badblocks [-svw][-b <区块大小>][-o <输出文件>][磁盘装置][磁盘区块数 [启始区块]] 典型的命令如下 # 写测试, 数据安全 -c - ...
- 12 oracle 数据库坏块--物理坏块-ORA-01578/ORA-01110
oracle 数据库坏块--物理坏块 数据坏块的类型物理坏块:通常是由于硬件损坏如磁盘异常导致.内存有问题.存储链有问题. IO有问题.文件系统有问题. Oracle本身的问题等逻辑坏块:可能都是软件 ...
- 【转】基于RMAN实现坏块介质恢复(blockrecover)
本文转自:乐沙弥的世界 对于物理损坏的数据块,我们可以通过RMAN块介质恢复(BLOCK MEDIA RECOVERY)功能来完成受损块的恢复,而不需要恢复整个数据库或所有文件来修复这些少量受损的数据 ...
随机推荐
- Inject-APC (Ring3)
1 // APCInject.cpp : 定义控制台应用程序的入口点. 2 // 3 4 #include "stdafx.h" 5 #include "APCInjec ...
- 默认标签的解析过程(三)parseDefaultElement
private void parseDefaultElement(Element ele, BeanDefinitionParserDelegate delegate) { if (delegate. ...
- 【Python机器学习实战】决策树与集成学习(四)——集成学习(2)GBDT
本打算将GBDT和XGBoost放在一起,但由于涉及内容较多,且两个都是比较重要的算法,这里主要先看GBDT算法,XGBoost是GBDT算法的优化和变种,等熟悉GBDT后再去理解XGBoost就会容 ...
- Linux系统的日志管理、时间同步、延迟命令at
方便查看和管理 /var/log/messages ?系统服务及日志,包括服务的信息,报错等等 /var/log/secure ? ? ? ? 系统认证信息日志 /var/log/maillog ? ...
- Docker下制作一个容器镜像
操作过程描述: (1)先基于centos的镜像启动一个centos容器 (2)在这个容器中安装nginx (3)然后把这个已经安装了nginx的容器制作成一个docker的镜像 操作:docker c ...
- shell传参和变量赋值
1.变量赋值方式 (1)方式1--直接赋值(=) (2)方式2--read交互式赋值 (3)方式3--脚本传参赋值 2.read read -p "请输入你的名字和年龄:" nam ...
- Git 系列教程(11)- 分支简介
前言 很多版本控制系统都有分支这个概念 使用分支意味着可以将日常工作从主线上脱离,从而避免影响主线 Git 鼓励在工作流程中频繁使用分支和合并 Git 是如何保存数据的 Git 保存的不是文件的变化或 ...
- JS015. 数据存储方式与位置(堆内存、栈内存、指针)
数据 - 基本类型 Undefined , Null , String , Number , Boolean , Symbol (ES 6) , 基本数据类型存储在栈内存中. 数 ...
- 博主有偿带徒 《编程语言设计和实现》《MUD游戏开发》《软件破解和加密》《游戏辅助外挂》《JAVA开发》
<考研专题>操作系统原理 理论解答:8K 实战 1.5W CPU设计 理论解答:1W 实战 2.5W <编程语言设计和实现>初窥门径<5K>:编译原理.编译设计小试 ...
- git 提交本地项目
在新文件夹中] 1.右键 git bash here,执行 2.git init 生成.git文件,存在则跳过 依次执行 1.git add . 2.git commit -m "提交信息& ...