天天看点

oracle rman crosscheck,rman 之crosscheck 与delete expired

当手工删除了归档日志以后,Rman备份会检测到日志缺失,从而无法进一步继续执行。

所以此时需要手工执行crosscheck过程,之后Rman备份可以恢复正常。

[执行顺序如下:手工删除archivelog --->crosscheck--->delete expired

最后可以用list copy检查]

我的试验如下:

1.Crosscheck日志

RMAN> crosscheck archivelog all;

释放的通道: ORA_DISK_1

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=11 devtype=DISK

对归档日志的验证成功

存档日志文件名 =D:\ORACLE\ORADATA\ORATEST\ARC\ORATEST_1_1037.ARC 记录 ID=595 时间戳 =649791052

对归档日志的验证成功

存档日志文件名 =D:\ORACLE\ORADATA\ORATEST\ARC\ORATEST_1_1038.ARC 记录 ID=596 时间戳 =650553016

对归档日志的验证失败

存档日志文件名 =D:\ORACLE\ORADATA\ORATEST\ARC\ORATEST_1_1039.ARC 记录 ID=597 时间戳 =651498074

......

......

对归档日志的验证失败

存档日志文件名 =D:\ORACLE\ORADATA\ORATEST\ARC\ORATEST_1_1048.ARC 记录 ID=606 时间戳 =652640044

已交叉检验的 12 对象

有2个archive log 经过crosscheck验证提示成功的是被我手工删除掉了的archive log,其它提示 “对归档日志的验证失败”的都是存在的archive log

2、使用delete expired archivelog all 命令删除所有过期归档日志:

RMAN> delete expired archivelog all;

释放的通道: ORA_DISK_1

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=11 devtype=DISK

已存档的日志副本列表

关键字     Thrd Seq     S 短时间     名称

------- ---- ------- - ---------- ----

595     1    1037    X 18-3月 -08 D:\ORACLE\ORADATA\ORATEST\ARC\ORATEST_1_1037.ARC

596     1    1038    X 19-3月 -08 D:\ORACLE\ORADATA\ORATEST\ARC\ORATEST_1_1038.ARC

是否确定要删除以上对象 (输入 YES 或 NO)? y

已删除的存档日志

存档日志文件名 =D:\ORACLE\ORADATA\ORATEST\ARC\ORATEST_1_1037.ARC 记录 ID=595 时间戳 =649791052

已删除的存档日志

存档日志文件名 =D:\ORACLE\ORADATA\ORATEST\ARC\ORATEST_1_1038.ARC 记录 ID=596 时间戳 =650553016

2 EXPIRED 对象已删除

3、使用list copy查看

RMAN> list copy;

已存档的日志副本列表

关键字     Thrd Seq     S 短时间     名称

------- ---- ------- - ---------- ----

597     1    1039    A 28-3月 -08 D:\ORACLE\ORADATA\ORATEST\ARC\ORATEST_1_1039.ARC

598     1    1040    A 08-4月 -08 D:\ORACLE\ORADATA\ORATEST\ARC\ORATEST_1_1040.ARC

....

606     1    1048    A 20-4月 -08 D:\ORACLE\ORADATA\ORATEST\ARC\ORATEST_1_1048.ARC

注意:以上crosscheck的2种提示英文对照为:对归档日志的验证成功-----》validation failed for archived log

对归档日志的验证失败-----> validation succeeded for archived log

4、简要介绍一下report obsolete命令

使用report obsolete命令报告过期备份

RMAN> report obsolete;

RMAN 保留策略将应用于该命令

将 RMAN 保留策略设置为冗余 1

未找到已废弃的备份

5.使用delete obsolete命令删除过期备份: (9i中使用)

RMAN> delete obsolete;

RMAN 保留策略将应用于该命令

将 RMAN 保留策略设置为冗余 1

使用通道 ORA_DISK_1

未找到已废弃的备份

上面的delete obsolete在9i中使用,在8i中删除过期备份命令如下:

RMAN>allocate channel for maintenance type disk;

RMAN>change backupset id delete;

RMAN>release channel;

也可以手工删除备份集,之后用如下命令同步

9i:

RMAN>crosscheck backup;

RMAN>delete expired backup;

8i:

RMAN>allocate channel for maintenance type disk;

RMAN>crosscheck backup;

RMAN>delete expired backup;

RMAN>release channel;