在RMAN备份全库的时候,将归档日志一同进行备份,结果报如下错误,可以看到是无法获得对应归档日志的报错:
RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of backup command at 07/05/2017 23:52:03 RMAN-06059: expected archived log not found, loss of archived log compromises recoverability ORA-19625: error identifying file /oradata/gqtzdb/archivelog/1_173_946166147.dbf ORA-27037: unable to obtain file status Linux-x86_64 Error: 2: No such file or directory Additional information: 3
根据报错,进入对应目录查看,发现确实没有此归档日志。所以此报错的原因可能是人为物理删除了该归档,而在控制文件中还记录此归档的存在,因此需要将此归档信息从控制文件的记载中删除,命令如下:
RMAN> crosscheck archivelog all;
RMAN> delete expired archivelog all;
[oracle@KG-ORA-01 archivelog]$ rman target / Recovery Manager: Release 11.2.0.4.0 - Production on Wed Jul 5 23:56:10 2017 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. connected to target database: GQTZDB (DBID=1719892735) RMAN> crosscheck archivelog all; using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=288 device type=DISK validation failed for archived log archived log file name=/oradata/gqtzdb/archivelog/1_173_946166147.dbf RECID=3870 STAMP=948015057 validation failed for archived log archived log file name=/oradata/gqtzdb/archivelog/1_174_946166147.dbf RECID=3873 STAMP=948015107 validation failed for archived log archived log file name=/oradata/gqtzdb/archivelog/1_175_946166147.dbf RECID=3875 STAMP=948015107 validation succeeded for archived log archived log file name=/oradata/gqtzdb/archivelog/1_38_948016496.dbf RECID=3960 STAMP=948585123 validation succeeded for archived log archived log file name=/oradata/gqtzdb/archivelog/1_39_948016496.dbf RECID=3962 STAMP=948585123 Crosschecked 5 objects RMAN> delete expired archivelog all; released channel: ORA_DISK_1 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=288 device type=DISK List of Archived Log Copies for database with db_unique_name GQTZDB ===================================================================== Key Thrd Seq S Low Time ------- ---- ------- - --------- 3870 1 173 X 30-JUN-17 Name: /oradata/gqtzdb/archivelog/1_173_946166147.dbf 3873 1 174 X 30-JUN-17 Name: /oradata/gqtzdb/archivelog/1_174_946166147.dbf 3875 1 175 X 30-JUN-17 Name: /oradata/gqtzdb/archivelog/1_175_946166147.dbf Do you really want to delete the above objects (enter YES or NO)? yes deleted archived log archived log file name=/oradata/gqtzdb/archivelog/1_173_946166147.dbf RECID=3870 STAMP=948015057 deleted archived log archived log file name=/oradata/gqtzdb/archivelog/1_174_946166147.dbf RECID=3873 STAMP=948015107 deleted archived log archived log file name=/oradata/gqtzdb/archivelog/1_175_946166147.dbf RECID=3875 STAMP=948015107 Deleted 3 EXPIRED objects RMAN> RMAN> crosscheck archivelog all; released channel: ORA_DISK_1 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=288 device type=DISK validation succeeded for archived log archived log file name=/oradata/gqtzdb/archivelog/1_38_948016496.dbf RECID=3960 STAMP=948585123 validation succeeded for archived log archived log file name=/oradata/gqtzdb/archivelog/1_39_948016496.dbf RECID=3962 STAMP=948585123 Crosschecked 2 objects
再次备份成功。