ITPub博客

首页 > 数据库 > Oracle > DG 主库丢失归档

DG 主库丢失归档

原创 Oracle 作者:lovehewenyu 时间:2012-04-10 17:15:41 0 删除 编辑
 

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;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26442936/viewspace-720840/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-02-03

  • 博文量
    267
  • 访问量
    1267643