standby缺失primary归档,手工同步恢复

         由于误删physical standby上来自primary db的归档日志,physical standby缺少还未应用到的archive log。

          此时,primary db也没有归档。考虑除了重建 standby外的其他方法。因为备份中保留压缩备份后的归档备份,所以,尝试从备份中恢复了archive log,然后实验了一下手工recover。期间发现standby的control file中没有backup set的信息(有archive log的),以前没注意过这个,在此记录一下。此外,切换成自动模式后,报 Failed to request gap sequence,其实gap的都已经存在在standby上了。这里需要手工注册。

 

恢复archive log到默认位置

RMAN>RESTORE ARCHIVELOG FROM SEQUENCE  13042  UNTIL SEQUENCE 13119;

(或 RMAN>RESTORE ARCHIVELOG FROM SEQUENCE  13042;)

SQL> startup nomount;

SQL> alter database mount standby database;

SQL> RECOVER AUTOMATIC STANDBY DATABASE;

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

standby上注册


ALTER DATABASE REGISTER LOGFILE  '/data/archive/test/1_12844_690562326.dbf';

---附上一个批量生成
select 'ALTER DATABASE REGISTER LOGFILE  ''/data/archive/test/1_'||(rownum+12844 )||'_690562326.dbf'';'

from all_objects
where rownum <= 98;


另,来自http://zhaolinjnu.blog.sohu.com/55088738.html

除了上面的automatic方式,也可以执行recover cancel的恢复方式:
SQL> RECOVER STANDBY DATABASE UNTIL CANCEL;

这种方式有一个好处是,可以应用联机日志信息,有时主库因为存储损坏,可以拷贝本地硬盘的联机日志到备用库,而拷贝的这些联机日志存放的地方也不是数据库默认的地方,如果让oracle自动恢复,它会找不到这些联机日志,这时就需要手动指定联机日志的路径,让其恢复。待恢复完成,可以强制激活备用库。

 以上两种手动恢复模式automatic和 CANCEL都不需要对归档日志进行注册,自动管理恢复模式 ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION 是需要的


查看相关信息,来自http://space.itpub.net/308563/viewspace-198067

SQL> SELECT PROCESS, STATUS FROM V$MANAGED_STANDBY;
 
PROCESS   STATUS
--------- ------------
ARCH      CONNECTED
ARCH      CONNECTED
MRP0      WAIT_FOR_GAP

SQL> select * from v$archive_gap;
 
   THREAD# LOW_SEQUENCE# HIGH_SEQUENCE#
---------- ------------- --------------
         1          5330           5331


ON PRIMARY:
SQL> SELECT PROCESS, STATUS FROM V$MANAGED_STANDBY;
 
PROCESS   STATUS
--------- ------------
ARCH      CLOSING
ARCH      CLOSING
LGWR      CLOSING


SQL> SHOW PARAMETER ARCHIVE

log_archive_dest_2                   string      SERVICE=STANDBY affirm lgwr ma
                                                 x_failure=1 noreopen net_timeout=60

SQL> select message from v$dataguard_status;

MESSAGE
--------------------------------------------------------------------------------
ORA-16198: LGWR received timedout error from KSR
LGWR: Attempting destination LOG_ARCHIVE_DEST_2 network reconnect (16198)
LGWR: Destination LOG_ARCHIVE_DEST_2 network reconnect abandoned
LGWR: Network asynch I/O wait error 16198 log 2 service 'STANDBY'
ARC1: Attempting destination LOG_ARCHIVE_DEST_2 network reconnect (3135)
ARC1: Destination LOG_ARCHIVE_DEST_2 network reconnect abandoned
PING[ARC1]: Error 3135 when pinging standby STANDBY.
LGWR: Failed to archive log 2 thread 1 sequence 5330 (16198)
LGWR: Closing remote archive destination LOG_ARCHIVE_DEST_2: 'STANDBY' (error 16
198)

SQL> SELECT PROCESS,STATUS FROM V$MANAGED_STANDBY;

PROCESS   STATUS
--------- ------------
ARCH      CLOSING
ARCH      OPENING
LGWR      WRITING

SQL> create or replace directory ARCHDIR as '+dgarch/wms/archivelog/2008_02_29';

Directory created.

SQL>  create or replace directory TEMPDIR as '/exp/tmparch';

Directory created.

SQL> exec DBMS_FILE_TRANSFER.COPY_FILE('ARCHDIR','thread_1_seq_5331.291.647960215','TEMPDIR','1_5331_620945476.arc');

PL/SQL procedure successfully completed.

SQL> exec DBMS_FILE_TRANSFER.COPY_FILE('ARCHDIR','thread_1_seq_5330.304.647958993','TEMPDIR','1_5330_620945476.arc');

PL/SQL procedure successfully completed.

其它,primary/standby环境:

x86_64

linux

oracle 10.2.0.4.0

记于2010年11月16日 

最后更新 2010年12月27日  
 

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

转载于:http://blog.itpub.net/23650854/viewspace-682649/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值