由于坏块导致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)功能来完成受损块的恢复,而不需要恢复整个数据库或所有文件来修复这些少量受损的数据 ...
随机推荐
- Contos6.5卸载自带JDK
1.查看CentOS6.5自带的JDK是否已经安装#Java -version2.查看JDK的信息#rpm -qa|grep java3.卸载JDK#rpm -e --nodeps tzdata-ja ...
- mzy git学习,删除文件(三)
删除一个文件(工作区删除,并且在本地版本库中也删除) 第一种方式: rm test.txt 先删除工作区的test.txt git add test.txt (我的理解是,将删除test.txt这个动 ...
- jQuery中的属性过滤选择器(四、五):[attribute] 、[attribute=value]、[attribute!=value] 、[attribute^=value] 等
<!DOCTYPE html> <html> <head> <title>属性过滤选择器</title> <meta http-equ ...
- redis连接池 go-redis
为什么使用连接池? 首先Redis也是一种数据库,它基于C/S模式,因此如果需要使用必须建立连接,稍微熟悉网络的人应该都清楚地知道为什么需要建立连接,C/S模式本身就是一种远程通信的交互模式,因此Re ...
- Python之requests模块-response
response类故名思议,它包含了服务器对http请求的响应.每次调用requests去请求之后,均会返回一个response对象,通过调用该对象,可以查看具体的响应信息. 示例如下: import ...
- Docker编排工具Docker Compose的使用
一.安装docker compose 官网推荐方式之一: sudo curl -L "https://github.com/docker/compose/releases/download/ ...
- C#多线程开发-任务并行库04
你好,我是阿辉. 之前学习了线程池,知道了它有很多好处. 使用线程池可以使我们在减少并行度花销时节省操作系统资源.可认为线程池是一个抽象层,其向程序员隐藏了使用线程的细节,使我们可以专心处理程序逻辑, ...
- Python习题集(十二)
每天一习题,提升Python不是问题!!有更简洁的写法请评论告知我! https://www.cnblogs.com/poloyy/category/1676599.html 题目 请写一个函数fin ...
- 植入式Web前端开发方法
上一篇,我讲述了植入式Web前端开发的基本情况,本篇就来探究其开发方法.以下假定CMS只能植入前端代码,并且需求规模是任意大小的. 代码形式 HTML代码是直接植入的毫无疑问,但除非植入的代码非常简短 ...
- STP(生成树)的概述和工作原理
一.STP的简介 二.STP的概述 三.STP的工作原理 四.生成树的算法 五.BPDU(桥协议数据单元) 六.STP收敛 TP简介 STP - Spanning Tree Protocol(生成树协 ...