首页 » ORACLE 9i-23ai » Troubleshooting Standby database recover failed with ORA-19906 ORA-10576 ORA-19909
Troubleshooting Standby database recover failed with ORA-19906 ORA-10576 ORA-19909
常常有客户配置oracle dataguard 1对多或级连(cascade) standby, 当需要一个测试环境时,通常考虑拿一个standby激活或snapshot dg,但如果在激活为可读写数据库时(Failover),如果提前DG参数没有清理,可能导致剩余standby database无法继续应用日志,这里简单记录。
如三套环境A ,B,C, 当前配置可能是因为switchover方便,配置归档所有都可以互传,如A库to bc, B库to ac, C库to ab.
如果B库激活可想C库就会收到来自A,B primary的归档。
Standby C库报错日志
ORA-19906: recovery target incarnation changed during recovery Managed Standby Recovery not using Real Time Apply Recovery interrupted! cannot find needed online log for redo thread 1 Some recovered datafiles maybe left media fuzzy. Media recovery may continue but open resetlogs may fail Error in file xxx.trc ORA-10576 give up restoring recovered datafile to consistent state: some error occured ORA-19906: recovery target incarnation changed during recovery Close the database due to recovery session errors.
Trace file
Recovery target incarnation changed from 2 to 3 MRP0 Incarnation has changed! retry recovery... ORA-19906: recovery target incarnation changed during recovery
清理C库非A传过去的arch
asmcmd> rm xxxx rman target / rman> crosscheck archivelog all; SQL> alter database recover managed standby database disconect from sessions;
查看日志
Managed Standby Recovery starting Real Time Apply Warning: Recovery target destination is in a sibling branch of the controlfile checkpoint. Recovery will only recover changes to datafiles. MRP0: Detected orphaned datafiles! Recovery will possibly be retried after flashback... ORA-19909: datafile 1 belongs to an orphan incarnation ORA-01110: datafile 1: '/system01.dbf' Managed Standby Recovery not using Real Time Apply 2020-02-07T16:37:28.206171+09:00 Recovery Slave PR00 previously exited with exception 19909
当B库failover或转换为snapshot后,它的ARCn会发送 archivelog (which include incarnation change) 到 Cascading Standby Database或是配置了其它幸存的Standby database. 这样会传播incarnation到其它standby database, 导致MRP 中止。
所以正常的操作流程在standby转换以前应该是停止它的日志传递。
SQL> recover managed standby database cancel; SQL> alter system set log_archive_dest_state_2=defer; SQL> alter database convert to snapshot standby; -- SQL> alter database recover managed standby database finish; SQL> alter database activate standby database disconnect from session; SQL> alter database open;
当 MRP0 因为报错 ORA-19909 and ORA-1110停止时,可以尝试 reset incarnation standby datbase.
rman target / RMAN> list incarnation; List of Database Incarnations DB Key IncKey DB Name DB ID STATUS Reset SCN Reset Time ------- ------ ------- ---------- ------- ---------- ---------- 1 1 ProDB 1322653252 ORPHAN 1 xxxx 2 2 ProDB 1322653252 ORPHAN xxxx xxxx 3 3 ProDB 1322653252 CURRENT xxxxxxxx 当前standby Incarnation为3,而生产为2. RMAN> reset database to incarnation 2;
重启应用日志恢复。
— over —
对不起,这篇文章暂时关闭评论。