DataGuard备库和主库数据不一致解决办法

今天帮一朋友检查主库alter日志的时候,发现大量错误报连接不上备库监听,发现备库监听日志已经15个多G监听挂了。重启监听。

select sequence#,first_time from v$archived_log order by sequence# ;     --查询主库归档日志号已经到630
SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;  --查询备库才应用到3110

在主库上发现3111的归档日志已经被删除了,当时的备份也被删除了,所以只能整库恢复。

1、在主库上用rman做一个全备。

2、在主库上备一个备库用的控制文件,语法如下:

alter database create standby controlfile as '/free/oracle/oradata/orcl/standby.ctl';

3、主库上的rman全备文件和备份的控制文件传到备库上并覆盖备库所有控制文件。

备库上操作

RMAN> shutdown;
RMAN> startup nomount;
RMAN> restore starndy controlfile from  '/home/oracle/rman/standby_ctl.ctl';
RMAN> alter database mount;

备库备份文件位置与主库保持一致

4、启动备库至mounted状态,进入rman,用list backup summary看一下控制文件中是否有这次备份(就是刚才在主库上的)

5、restore database

6、recover database

7、确认备库应用到主库的最大归档日志

8、关闭数据库,启动至mounted状态

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


你可能感兴趣的:(oracle,dataguard)