Oracle 增量备份修复dg gap

流云追风 2020-06-11

问题描述
oracle中DG出现主备不同步现象,alert日志报警有gap信息,但是v$archive_gap视图查不到任何信息。同时主库上的对应归档已经删除且没有备份

解决方案

1.查询备库的scn
SQL> select current_scn from v$database;

这时有可能出来的scn是以科学计数法的方式显示

SQL> select current_scn from v$database;

CURRENT_SCN
-----------
1.4969E+13

设置行宽,重新查询:

SQL> set numwidth 20
SQL> /

CURRENT_SCN
--------------------
14968833842954

2.主库用rman基于以上查出的scn备份:
RMAN> backup incremental from scn 14968833842954 database format ‘/backup/rman/bak_%U‘;

说明:主库之前必须要做过rman的全备(没有全备的库,基于scn的增量备份也能够成功)

备份控制文件:

RMAN>backup current controlfile for standby format ‘/backup/rman/standby.ctl‘;

将以上备份文件及控制文件传到备库

3.把备库启动到nomount状态,恢复控制文件
RMAN> restore standby controlfile from ‘/backup/standby.ctl‘;

另开一个窗口:SQL>alter database mount standby database;

开始恢复:

RMAN>catalog start with ‘/backup/rman/‘;(catalog是10g以后才有的,另如果该命令报no files fount 错误,把备份文件移到新目录下重新catalog)
或者 catalog backuppiece ‘/life/lifedata_u04/backup/bk_LIFE_20160604_2sr79khe_1_1‘;

RMAN>recover database noredo;

如果是11g需要把库启动到open模式,启动时要用resetlogs,如果是10g可以在新窗口直接打开应用,然后主库切换归档查看应用是否同步,如果能正常接收并应用归档,说明gap修复成功。

alter database recover managed standby database cancel;
alter database open read only ;
alter database recover managed standby database using current logfile disconnect from session;

相关推荐