惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Cloudflare Blog
A
About on SuperTechFans
腾讯CDC
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Google Online Security Blog
Google Online Security Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
小众软件
小众软件
酷 壳 – CoolShell
酷 壳 – CoolShell
H
Heimdal Security Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
S
Security @ Cisco Blogs
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Jina AI
Jina AI
爱范儿
爱范儿
D
DataBreaches.Net
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Security Archives - TechRepublic
Security Archives - TechRepublic
P
Proofpoint News Feed
P
Privacy International News Feed
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Palo Alto Networks Blog
S
SegmentFault 最新的问题
U
Unit 42
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
美团技术团队
T
Tenable Blog
V
V2EX
M
MIT News - Artificial intelligence
Recorded Future
Recorded Future
A
Arctic Wolf
Hacker News - Newest:
Hacker News - Newest: "LLM"
Last Week in AI
Last Week in AI
P
Proofpoint News Feed
Stack Overflow Blog
Stack Overflow Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
G
GRAHAM CLULEY
P
Privacy & Cybersecurity Law Blog
Martin Fowler
Martin Fowler
人人都是产品经理
人人都是产品经理
Google DeepMind News
Google DeepMind News
L
LINUX DO - 热门话题
博客园 - 【当耐特】
博客园 - 叶小钗
S
Securelist
T
Tor Project blog
Forbes - Security
Forbes - Security
O
OpenAI News
IT之家
IT之家
博客园 - Franky

博客园 - 石云华

Exadata环境中的CVE-2026-31431漏洞说明 /var/log/message日志中的“megaraid_sas 0000:65:00.0: Application firmware crash dump mode set success”信息 DBCA后,只能启动一个实例,都是rp_filter惹的祸 分析Exadata写入慢的性能故障 Exadata更换Infiniband交换机 数据库集群中的bond1接口出现网络丢包 EM13告警:Metric evaluation error start - oracle.sysman.emSDK.agent.fetchlet.exception.FetchletException: Permission denied(publickey,password) Exadata,更换完思科交换机后,与上联交换机无法通信 Exadata更换计算节点的硬盘 Exalogic虚拟机的网络无法启动,提示Device has different MAC address than expected 单个ASM磁盘free空间为0,导致rebalance时提示“ASM磁盘组空间耗尽(ORA-15041)” Exadata的思科交换机,重启后进入到了rommon模式 SYSAUX表空间中的SYS.EXP_HEAD$表,占用大量空间 PX并行进程产生大量的trace日志,导致文件系统撑爆 回收站存在大量对象,导致Insert into...select语句夯住 用dg broker执行switchover时,报0RA-01017 增量备份恢复的方式修改缺失归档的DataGuard 未设置min_free_kbytes参数,导致操作系统进行页缓存回收时,整个操作系统夯住 Exadata数据库性能异常,备份进程卡住 MySQL 5.7版本,搭建一个两主一从的多源主从复制环境 Exadata计算节点的内存出现故障,导致CPU耗尽 Bug 34885986 - Flashback log file was not reused even if db_flashback_retention_target is passed
恢复某个数据文件不适当,导致DataGuard无法open数据库
石云华 · 2025-09-23 · via 博客园 - 石云华

1、案例概述

同事反馈:一套11gR2的DataGuard环境,备库执行alter databases open时,一直hang住,数据库的alert日志也没有任何的报错信息。询问得知,由于备库的system数据文件损坏,导致DG环境中断,于是同事从主库备份了数据文件并在备库进行了恢复。目前,故障现象是执行alter databases open时一直hang住。

2、案例分析

2.1 建议同事收集10046事件 和进程的pstack 和 strace日志。

2.2 分析10046事件,摘取部分10046日志如下所示。

PARSING IN CURSOR #140049693225008 len=19 dep=0 uid=0 oct=35 lid=0 tim=1758607635447030 hv=684487124 ad='a3fe61a20' sqlid='1h50ks4ncswfn'
ALTER DATABASE OPEN
END OF STMT
PARSE #140049693225008:c=1165,e=5441,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=1,plh=0,tim=1758607635447028
WAIT #140049693225008: nam='control file sequential read' ela= 21 file#=0 block#=1 blocks=1 obj#=-1 tim=1758607635448107
WAIT #140049693225008: nam='control file sequential read' ela= 9 file#=0 block#=39 blocks=1 obj#=-1 tim=1758607635448165

......

WAIT #140049693225008: nam='db file sequential read' ela= 24 file#=1 block#=1 blocks=1 obj#=-1 tim=1758607635502499
WAIT #140049693225008: nam='control file sequential read' ela= 14 file#=0 block#=413 blocks=1 obj#=-1 tim=1758607635502547
DDE: Problem Key 'ORA 1110' was flood controlled (0x1) (no incident)
ORA-01110: data file 1: '/u01/app/oracle/oradata/dg/datafile/system.271.1133385189'
Managed Recovery: Real Time Apply enabled.
WAIT #140049693225008: nam='control file sequential read' ela= 8 file#=0 block#=1 blocks=1 obj#=-1 tim=1758607635503330

......

WAIT #140049693225008: nam='rdbms ipc reply' ela= 1301 from_process=10 timeout=2147483647 p3=0 obj#=-1 tim=1758607926054331
ORA-10458: standby database requires recovery
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/u01/app/oracle/oradata/dg/datafile/system.271.1133385189'
EXEC #140049693225008:c=6067521,e=290607626,p=6542,cr=0,cu=0,mis=0,r=0,dep=0,og=1,plh=0,tim=1758607926054783
ERROR #140049693225008:err=10458 tim=1758607926054813
WAIT #140049693225008: nam='SQL*Net break/reset to client' ela= 34 driver id=1650815232 break?=1 p3=0 obj#=-1 tim=1758607926061084
WAIT #140049693225008: nam='SQL*Net break/reset to client' ela= 154 driver id=1650815232 break?=0 p3=0 obj#=-1 tim=1758607926061286
WAIT #140049693225008: nam='SQL*Net message to client' ela= 2 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1758607926061311

*** 2025-09-23 14:12:18.084
WAIT #140049693225008: nam='SQL*Net message from client' ela= 12844805 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1758607938906164
CLOSE #140049693225008:c=13,e=13,dep=0,type=0,tim=1758607938906343
=====================
PARSING IN CURSOR #140049693263712 len=55 dep=0 uid=0 oct=42 lid=0 tim=1758607938906731 hv=2655499671 ad='0' sqlid='0kjg1c2g4gdcr'
ALTER SESSION SET EVENTS '10046 trace name context off'
END OF STMT

从10046事件的日志可以看出,alter database open时,虽然表面上是hang住,但实际上已经有报错信息了,提示file 1当前处于不一致的状态,需要继续恢复。

2.3 让同事重新发起alter database open,把数据库刚刚产生的alert日志发出来看看。显示如下:

Tue Sep 23 18:21:23 2025
alter database open read only
Beginning Standby Crash Recovery.
Serial Media Recovery started
Managed Standby Recovery starting Real Time Apply
Media Recovery Log /u01/app/oracle/oradata/fast_recovery_area/DG01/archivelog/2025_09_23/o1_mf_2_782523_nf4x17rc_.arc
Media Recovery Log /u01/app/oracle/oradata/fast_recovery_area/DG01/archivelog/2025_09_23/o1_mf_1_1545049_nf4x2jl5_.arc
Media Recovery Log /u01/app/oracle/oradata/fast_recovery_area/DG01/archivelog/2025_09_23/o1_mf_2_782524_nf4x34bc_.arc
Media Recovery Log /u01/app/oracle/oradata/fast_recovery_area/DG01/archivelog/2025_09_23/o1_mf_1_1545050_nf4x34s5_.arc
Media Recovery Log /u01/app/oracle/oradata/fast_recovery_area/DG01/archivelog/2025_09_23/o1_mf_2_782525_nf4x3hvb_.arc
Media Recovery Log /u01/app/oracle/oradata/fast_recovery_area/DG01/archivelog/2025_09_23/o1_mf_1_1545051_nf4x3j80_.arc
Tue Sep 23 18:21:33 2025
Media Recovery Log /u01/app/oracle/oradata/fast_recovery_area/DG01/archivelog/2025_09_23/o1_mf_2_782526_nf4x41vl_.arc
Media Recovery Log /u01/app/oracle/oradata/fast_recovery_area/DG01/archivelog/2025_09_23/o1_mf_1_1545052_nf4x4288_.arc
Media Recovery Waiting for thread 2 sequence 782527 (in transit)
Media Recovery of Online Log [Thread=2, Seq=782527]
Recovery of Online Redo Log: Thread 2 Group 10 Seq 782527 Reading mem 0
Mem# 0: /u01/app/oracle/oradata/dg/onlinelog/group_10.320.1133484345
Mem# 1: /u01/app/oracle/oradata/dg/onlinelog/group_10.4595.1133484345
Media Recovery Waiting for thread 1 sequence 1545053 (in transit)
Media Recovery of Online Log [Thread=1, Seq=1545053]
Recovery of Online Redo Log: Thread 1 Group 7 Seq 1545053 Reading mem 0
Mem# 0: /u01/app/oracle/oradata/dg/onlinelog/group_7.302.1133484315
Mem# 1: /u01/app/oracle/oradata/dg/onlinelog/group_7.4584.1133484315

可以看出,发起alter database open read only命令后,备库先应用归档日志,归档日志应用完毕后,又开始继续应用standby log,永无止境。所以前台发起的alter database open read only命令就一直hang住。

2.4 感觉还是那个当初出问题的system数据文件有问题。于是再次询问同事,当备库原始的那个system数据文件损坏后,为解决这个问题,是怎么重新将system数据文件恢复到备库的?得知:首先用rman的backup datafile 1..命令备份时报错,于是改成直接用cp命令了,最终,是现在的故障现象,备库没有任何报错,但alter database open read only命令就一直hang住。

2.5 主库在open的情况下,直接用cp命令将system数据文件复制到备库。这肯定不对。由于让同事把rman的backup datafile 1..命令备份时报错的日志发出来看看。backup命令的确是报错了,但其实system数据文件也已经备份成功,具体报错原因不在本案例进行详细说明。让同事用刚刚rman生成的备份集在备库进行恢复,最终故障处理完毕,备库成功open。

3、案例总结

怎么恢复备库的某个数据文件,步骤如下:
1) 在主库对该数据文件进行备份。
rman> backup datafile n format '/tmp/datafilen.bak';
2) 将主库刚生成的备份集复制至备库。
3) 在备库注册备份集。
rman> catalog backuppiece '/tmp/datafilen.bak';
4) 停止备库应用日志功能。
SQL> alter database recover managed standby database cancel;
5) 在备库restore数据文件。
rman> restore datafile n;
6) 启用备库应用日志功能。
SQL> alter database recover managed standby database using current logfile disconnect;