oraclemch 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;