归档日志丢失造成Rman备份失败解决办法


--测试库的归档日志文件被无意删除了,下面是解决步骤

RMAN> backup as compressed backupset database plus archivelog delete input;

启动 backup 于 24-2月 -12
当前日志已存档
使用通道 ORA_DISK_1
使用通道 ORA_DISK_2
MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: backup plus archivelog 命令 (在 02/24/2012 01:02:19 上) 失败
RMAN-06059: 没有找到预期的归档日志, 归档日志的丢失将影响可恢复性
ORA-19625: 识别文件E:\Oracle\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\ARC00148_0684537946.001时出错
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。

RMAN> crosscheck archivelog all;

释放的通道: ORA_DISK_1
释放的通道: ORA_DISK_2
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=138 devtype=DISK
分配的通道: ORA_DISK_2
通道 ORA_DISK_2: sid=137 devtype=DISK
对归档日志的验证失败
存档日志文件名 =E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\ARC00149_0684537946.001 记录 ID=94 时间戳 =776048489
对归档日志的验证失败
存档日志文件名 =E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\ARC00150_0684537946.001 记录 ID=95 时间戳 =776048537
已交叉检验的 2 对象


对归档日志的验证成功
存档日志文件名 =E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\ARC00148_0684537946.001 记录 ID=93 时间戳 =776048448
已交叉检验的 1 对象


可以用RMAN>delete expired archivelog all;或者以下命令
RMAN> delete archivelog like 'E:\ORACLE\PRODUCT\10.2.0\FLASH%ARC00148%_0684537946.001';


释放的通道: ORA_DISK_1
释放的通道: ORA_DISK_2
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=138 devtype=DISK
分配的通道: ORA_DISK_2
通道 ORA_DISK_2: sid=137 devtype=DISK


已存档的日志副本列表
关键字     Thrd Seq     S 短时间     名称
------- ---- ------- - ---------- ----
1658    1    148     X 24-2月 -12 E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\ARC00148_0684537946.001


是否确定要删除以上对象 (输入 YES 或 NO)? yes
已删除的存档日志
存档日志文件名 =E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\ARC00148_0684537946.001 记录 ID=93 时间戳 =776048448
1 对象已删除


RMAN> backup as compressed backupset database plus archivelog delete input;


启动 backup 于 24-2月 -12
当前日志已存档
使用通道 ORA_DISK_1
使用通道 ORA_DISK_2
通道 ORA_DISK_1: 启动压缩的归档日志备份集
通道 ORA_DISK_1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =149 记录 ID=94 时间戳=776048489
输入存档日志线程 =1 序列 =150 记录 ID=95 时间戳=776048537
通道 ORA_DISK_1: 正在启动段 1 于 24-2月 -12
通道 ORA_DISK_2: 启动压缩的归档日志备份集
通道 ORA_DISK_2: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =151 记录 ID=96 时间戳=776048684
通道 ORA_DISK_2: 正在启动段 1 于 24-2月 -12
通道 ORA_DISK_1: 已完成段 1 于 24-2月 -12
段句柄=E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\AUTOBACKUP\ORCL_96_ORCLXXXX_1212318678.BAK 标记=TAG20120224T010446 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02
通道 ORA_DISK_1: 正在删除存档日志
存档日志文件名 =E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\ARC00149_0684537946.001 记录 ID=94 时间戳 =776048489
存档日志文件名 =E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\ARC00150_0684537946.001 记录 ID=95 时间戳 =776048537
通道 ORA_DISK_2: 已完成段 1 于 24-2月 -12
段句柄=E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\AUTOBACKUP\ORCL_97_ORCLXXXX_1212318678.BAK 标记=TAG20120224T010446 注释=NONE
通道 ORA_DISK_2: 备份集已完成, 经过时间:00:00:02
通道 ORA_DISK_2: 正在删除存档日志
存档日志文件名 =E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\ARC00151_0684537946.001 记录 ID=96 时间戳 =776048684
完成 backup 于 24-2月 -12


启动 backup 于 24-2月 -12
使用通道 ORA_DISK_1
使用通道 ORA_DISK_2
通道 ORA_DISK_1: 启动压缩的全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 24-2月 -12
通道 ORA_DISK_2: 启动压缩的全部数据文件备份集
通道 ORA_DISK_2: 正在指定备份集中的数据文件
输入数据文件 fno=00003 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
输入数据文件 fno=00002 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
通道 ORA_DISK_2: 正在启动段 1 于 24-2月 -12
通道 ORA_DISK_2: 已完成段 1 于 24-2月 -12
段句柄=E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\AUTOBACKUP\ORCL_99_ORCLXXXX_1212318678.BAK 标记=TAG20120224T010450 注释=NONE
通道 ORA_DISK_2: 备份集已完成, 经过时间:00:00:46
通道 ORA_DISK_2: 启动压缩的全部数据文件备份集
通道 ORA_DISK_2: 正在指定备份集中的数据文件
输入数据文件 fno=00004 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_2: 正在启动段 1 于 24-2月 -12
通道 ORA_DISK_1: 已完成段 1 于 24-2月 -12
段句柄=E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\AUTOBACKUP\ORCL_98_ORCLXXXX_1212318678.BAK 标记=TAG20120224T010450 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:47
通道 ORA_DISK_1: 启动压缩的全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00005 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 24-2月 -12
通道 ORA_DISK_1: 已完成段 1 于 24-2月 -12
段句柄=E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\AUTOBACKUP\ORCL_101_ORCLXXXX_1212318678.BAK 标记=TAG20120224T010450 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:23
通道 ORA_DISK_2: 已完成段 1 于 24-2月 -12
段句柄=E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\AUTOBACKUP\ORCL_100_ORCLXXXX_1212318678.BAK 标记=TAG20120224T010450 注释=NONE
通道 ORA_DISK_2: 备份集已完成, 经过时间:00:00:24
完成 backup 于 24-2月 -12


启动 backup 于 24-2月 -12
当前日志已存档
使用通道 ORA_DISK_1
使用通道 ORA_DISK_2
通道 ORA_DISK_1: 启动压缩的归档日志备份集
通道 ORA_DISK_1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =152 记录 ID=97 时间戳=776048761
通道 ORA_DISK_1: 正在启动段 1 于 24-2月 -12
通道 ORA_DISK_1: 已完成段 1 于 24-2月 -12
段句柄=E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\AUTOBACKUP\ORCL_102_ORCLXXXX_1212318678.BAK 标记=TAG20120224T010603 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02
通道 ORA_DISK_1: 正在删除存档日志
存档日志文件名 =E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\ARC00152_0684537946.001 记录 ID=97 时间戳 =776048761
完成 backup 于 24-2月 -12


启动 Control File and SPFILE Autobackup 于 24-2月 -12
段 handle=E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\AUTOBACKUP\2012_02_24\O1_MF_S_776048766_7NDWHZWB_.BKP comment=NONE
完成 Control File and SPFILE Autobackup 于 24-2月 -12

RMAN>

--测试库中的archivelog文件被无意删除了,但控制文件中该文件仍标记为有效(见select name,sequence#,resetlogs_id,archived,deleted,status from v$archived_log结果集中的deleted和status列);故rman做归档备份时还是要备份被无意删除的文件,但文件已经被物理删除,磁盘上找不到就会报错,通过rman crosscheck archivelog all也可以看到文件已经失效,所以备份之前先将归档文件从控制文件中删除,然后备份就会成功;

相关内容