By 清欢 2018年04月25日
场景:主库定时清理归档任务失败,报错备库仍需要这些归档来应用不可删除,以下是报错信息:
RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process
查看备库alert日志出现了gap,如下:
Fetching gap sequence in thread 1, gap sequence 26-31
正常情况下,只需将主库未传送的归档copy到备库手工注册即可,但发现主库也没有有这部分归档,所以需要对备库进行恢复。以下将使用增量备份来恢复故障备库。
强制删除归档
RMAN> DELETE FORCE ARCHIVELOG UNTIL TIME 'SYSDATE-7';
手工注册日志
SQL> ALTER DATABASE REGISTER LOGFILE '<PATH>';
在备库上关闭日志应用
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
Database altered.
确定增量备份的起始scn号(取以下查询结果中的最小SCN)
SQL> SELECT CURRENT_SCN FROM V$DATABASE;
CURRENT_SCN
-----------
917051
SQL> SELECT MIN(FIRST_NONLOGGED_SCN) FROM V$DATAFILE WHERE FIRST_NONLOGGED_SCN>0;
MIN(FIRST_NONLOGGED_SCN)
------------------------
SQL> SELECT FILE#, FIRST_NONLOGGED_SCN FROM V$DATAFILE WHERE FIRST_NONLOGGED_SCN > 0;
no rows selected
创建增量备份
[oracle@odd backup]$ rman target /
Recovery Manager: Release 11.2.0.3.0 - Production on Mon Mar 12 15:06:40 2018
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: PROD (DBID=382173196)
RMAN> backup format '/home/oracle/backup/sdb_incre_%U.bkp' incremental from scn 917051 database;
Starting backup at 12-MAR-18
using channel ORA_DISK_1
backup will be obsolete on date 19-MAR-18
archived logs will not be kept or backed up
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u01/app/oracle/oradata/PROD/system01.dbf
input datafile file