RMAN执行crosscheck archive报错ORA-19633问题处理

一、问题现象

RMAN
connect target /;
run {
crosscheck archivelog all;
}

ORA-19633: control file record 58407 is out of sync with recovery catalog

二、问题排查

SQL> select FIRST_TIME,name,sequence#,status,thread# from v$archived_log where recid=58407;
FIRST_TIME     NAME                                                             SEQUENCE# STA    THREAD#
-------------------------------------------------------------------------------------------
09-OCT-18     D:APPADMINISTRATORARCHRBCHECKINARC0000071542_0853518879.0001   71542 A            1

RMAN> delete force archivelog sequence 71542;
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=8 device type=DISK
specification does not match any archived log in the repository

catalog archivelog 'D:APPADMINISTRATORARCHRBCHECKINARC0000071542_0853518879.0001';
通过查询,可以发现,使用force,catalog 无法强制删除归档或者重新注册归档(归档文件已不存在)
SQL
> select name from v$archived_log; NAME -------------------------------------------------------------------------------- /oracle/arch/rbcheckin/1_3579_990090011.dbf /oracle/arch/rbcheckin/1_3580_990090011.dbf /oracle/arch/rbcheckin/1_3581_990090011.dbf /oracle/arch/rbcheckin/1_3582_990090011.dbf /oracle/arch/rbcheckin/1_3583_990090011.dbf /oracle/arch/rbcheckin/1_3584_990090011.dbf /oracle/arch/rbcheckin/1_3585_990090011.dbf /oracle/arch/rbcheckin/1_3586_990090011.dbf 5024 rows selected.
当前的归档路径是linux文件系统,而报错的归档是在windows的路径,因此沟通发现,这套库是18年从windows平台迁移至linux
目标就是删除这个无效的归档日志

三、问题处理

SQL>execute sys.dbms_backup_restore.resetCfileSection( 11);
SQL> select name from v$archived_log;
no rows selected
RMAN> catalog start with '/oracle/arch/rbcheckin/';

Removing entries in v$archived_log referencing a particluar DEST_ID (Doc ID 845361.1)
原理是清空控制文件中的归档日志信息,重新使用catalog进行注册
由于本次控制文件记录该日志是有效的,但实际文件不存在,通过crosscheck archive过程报错,因此无法常规手段进行处理;
原文地址:https://www.cnblogs.com/lvcha001/p/11751707.html