oracle dataguard 主库归档日志缺失,导致主备库不一致故障处理

背景描述:

主库上由于归档日志未及时清理,导致根目录满了,虚拟化环境,系统ping通,但连接不上,只好重启。

由于主库上堆积了大量归档日志未应用到备库,所以备库上一直在追加日志,然后在我低头沉思卖萌的瞬间,再抬头发现备库alert日志报错,缺失归档日志。

火急火燎的查看主库归档日志情况,特么的,原先100多g的归档全没了,开发那边真是为民请命,随手删了归档腾了空间。。。


问题处理思路:

一、重建dataguard(嫌累)

二、根据当前备库的scn号,对主库进行增量备份,然后将备份应用到备库上(是不是很完美)

毫无疑问的选择思路2,大致步骤如下:

1、查询备库上scn号:

select current_scn from v$database;

扫描二维码关注公众号,回复: 1661078 查看本文章

  14372327

2、取消掉备库上的日志应用

alter database recover managed standby database cancel;

3、主库上进行备份

rman target  /

backup incremental from scn 14372327 database format '/home/oracle/incre_bak.bk';

4、将备份文件传到备库的/home/oracle目录下面

5、在备库上,先还原控制文件

rman target /

restore standby controlfile to '/home/oracle/control01.ctl'

6、用还原出来的控制文件,替换现有库上的控制文件

7、再次进入rman,进行恢复数据(此时要先将备库启动mount状态,之前我在read only状态,导致恢复失败)

catalog start with '/home/oracle/’;

recover database noredo;

8、恢复完以后将备库的日志应用打开,让数据库自己追加日志即可。

alter database recover managed standby database using current logfile disconnect from session;

----------------------------------------------------------------------------------------------------------------------------

ps:大致流程便是如此,具体细节需要自己加以琢磨,过程中遇到点情况是难免的,根据错误提示,一步步解决问题方能加深理解。



猜你喜欢

转载自blog.csdn.net/killvoon/article/details/74626206
今日推荐