环境:主备库均为windows 平台 11.2.0.3 单实例
standby 上查询已经有gap了:
![](http://img.blog.itpub.net/blog/attachment/201608/21/28341524_1471742830ooyF.png?x-oss-process=style/bb)
而57645 号这个归档在 standby 上没有,按日期排序如下:
![](http://img.blog.itpub.net/blog/attachment/201608/21/28341524_1471742847dAZ7.png?x-oss-process=style/bb)
主库当的归档目录如下:
![](http://img.blog.itpub.net/blog/attachment/201608/21/28341524_14717432412kPJ.png?x-oss-process=style/bb)
主库上的 rman 配置的归档删除策略为应用到所有的standby后再删除
CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON ALL STANDBY;
rman 备份的时候也会备份归档并 delete all input ,但查看rman的定时任务是20点整。不是0点。所以主库归档一定是人为删除,standby上的7月31号只剩下一个,然后就是8月12号的,说明也是人为删除。
现在缺失的归档已经没办法拿到了,只能考虑增量恢复或者重做standby了。先考虑增量备份吧。
我是从这篇文档学会了standby断档可以用增量恢复
How to resolve ORA:00328 in a standby database (文档 ID 864364.1)
后来在杨建荣的笔记中也看到可以使用增量备份解决standby 断档的问题。
恢复步骤:
1、standby 上停止recover
standby:SQL> alter database recover managed standby database cancel;
2、standby 上查一下现在的SCN号
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
1276325405
3、primary 上做增量备份
rman> BACKUP INCREMENTAL FROM SCN
1276325405 DATABASE FORMAT '
D:\forstandby\
ForStandby_%U' tag 'FORSTANDBY';
将备份集到备库
D:\forstandby\ -> D:\app\forstandby
备库注册备份
RMAN> CATALOG START WITH 'D:\app\forstandby';
RMAN> REPORT SCHEMA;
RMAN> STARTUP FORCE NOMOUNT;
RMAN> RESTORE STANDBY CONTROLFILE FROM 'D:\app\forstandby\ForStandby_1oqvu19a_1_1'; ##如果生成2个或多个备份片,控制文件一般在小的备份片中
RMAN> ALTER DATABASE MOUNT;
RMAN> CATALOG START WITH '/oracle/app/backup'; ##由于恢复了控制文件,如果备份集在standby 上的位置与primary 不同,需要再次注册备份集
RMAN> RECOVER DATABASE NOREDO;
恢复完就可以重新recover 了
SQL>
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;
SQL> SELECT PROCESS,SEUQENCE#,STATUS FROM V$MANAGED_STANDBY;
然而我本次并没有收到很大的益处,因为primary 库才76G,但增量备份就30个G,再传到standby 上网络就花了50分钟,没错,客户的网络环境不行,同网段数据传输才10M每秒。都不如直接 duplicate from active database 了。但这个方法在库非常大,断档时间短的情况下使用会非常好。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28341524/viewspace-2123745/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/28341524/viewspace-2123745/