dataguard宕机重启后,MRP进程起不来,报ORA-01111(10g)或者ORA-01274(11g)错
问题背景:
客户dataguard宕机重启后,MRP进程因缺少数据文件起不来,
报错如下ORA-01111: name for data file 19 is unknown - rename to correct file
问题解决
1> 检查dataguard,sid已经正常启动,尝试启动MRP进程起不来,查看alert日志 (10g)
1 Errors in file /home/oracle/admin/oradb/bdump/zjport_mrp0_17798.trc: 2 ORA-01111: name for data file 19 is unknown - rename to correct file 3 ORA-01110: data file 19: '/home/oracle/product/10.2.0/db_1/dbs/UNNAMED00019' 4 ORA-01157: cannot identify/lock data file 19 - see DBWR trace file 5 ORA-01111: name for data file 19 is unknown - rename to correct file 6 ORA-01110: data file 19: '/home/oracle/product/10.2.0/db_1/dbs/UNNAMED00019' 7 MRP0: Background Media Recovery process shutdown (oradb)
查看alert日志发现datafile为19的数据库文件缺失,尝试重新创建
1 ALTER SYSTEM SET standby_file_management='MANUAL' SCOPE=BOTH; 2 alter database create datafile '/home/oracle/product/10.2.0/db_1/dbs/UNNAMED00019' as '/u01/oracle/oradata/oradb/test02.dbf' 3 ALTER SYSTEM SET standby_file_management='AUTO' SCOPE=BOTH;
重启MRP进程
1 ALTER DATABASE RECOVER managed standby database disconnect from session parallel 12;
2> 如果是11g,报错可能如下
1 File #1103 added to control file as 'UNNAMED01103' because 2 the parameter STANDBY_FILE_MANAGEMENT is set to MANUAL 3 The file should be manually created to continue. 4 Errors with log /oradb/db_dg_arc/oradb/oradb_2_193066_899639967.arc 5 MRP0: Background Media Recovery terminated with error 1274 6 Errors in file /u01/oracle/diag/rdbms/oradb/oradb/trace/oradb_pr00_25640.trc: 7 ORA-01274: cannot add datafile '+oradb/oradb/datafile/sysaux_04.dbf' - file could not be created 8 Managed Standby Recovery not using Real Time Apply 9 Recovery interrupted!
发现datafile为1103的数据文件确实,尝试重新创建
1 ALTER SYSTEM SET standby_file_management='MANUAL' SCOPE=BOTH; 2 alter database create datafile '/u01/oracle/product/db11gr2/dbs/UNNAMED01103' as '/sxbddj/sxbddjdat_u01/sxbddj/sysaux_04.dbf'; 3 ALTER SYSTEM SET standby_file_management='AUTO' SCOPE=BOTH; 4 ALTER DATABASE RECOVER managed standby database disconnect from session parallel 12 ;
3> 如果不知道文件编号所代表的数据文件是哪一个,可以从主库中获取
1 SQL> select name from v$datafile where file#=1103; 2 NAME 3 -------------------------------------------------------------------------------- 4 oradb/oradb/datafile/sysaux_04.dbf
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了