DG 主库丢失归档
主要原因就是备库没有APP呢,主库就误把归档删除了。常见的这种情况都是主库RMAN做备份的时候把归档删除了。
丢失归档解决方法:用RMAN 增量备份恢复,还有恢复控制文件。
备库:
SQL> select sequence#,applied from v$archived_log;
SEQUENCE# APP
---------- ---
69
YES
70
YES
71
YES
72
YES
73
YES
74
YES
75
YES
76
YES
77
YES
78
YES
79 YES
SEQUENCE# APP
---------- ---
86
NO
87
NO
从这里我们可以看出2个问题:
1、
从80到85 sequence# 没有记录了,这里就是主库的归档丢失了,都没有传输到备库上。
2、
86,87 sequence# 传输过来了,证明归档过来了,但是没有应用(这里执行命令恢复:alter database recover managed standby database disconnect from session 执行后还是没有同步因为这里的GAP不同了,所以DG不应用回来传输过来的日志)。这个问题就是因为前面的归档丢失了,所以后面到来的归档也没有办法应用。
解决方法:
一、备库
查看当前的SCN号:
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
528205
二、主库
进行RMAN增量备库:
Rman>
backup as compressed backupset incremental from SCN
528205
database format '/u01/standby_%d_%T_%U.bak'
include current controlfile for standby filesperset=5
tag 'FOR STANDBY';
(一条命令增量备份,同时也备份了控制文件。)
三、备库
进行恢复数据,恢复控制文件:
1、把增量备份SCP到备库上,并且用 CATALOG START WITH ‘/u01/’; 注册。
2、然后进行恢复。
Alter database recover managed standby database disconnect from session;
Alter database recover managed standby database cancel;
RMAN> run {
allocate channel dsk0 type disk;
allocate channel dsk1 type disk;
allocate channel dsk2 type disk;
restore standby controlfile to '/u01/control01.ctl';
recover database noredo;
}
然后
shut immediate
把控制文件覆盖原控制文件。
然后
startup mount
Alter database recover managed standby database disconnect from session;
四、主库
切换即可,然后查看备库的归档应用状态。
Select sequence#,applied from v$archived_log;