分类: Oracle
2010-09-19 09:38:20
当手工删除了归档日志以后,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
已存档的日志副本列表
关键字
------- ---- ------- - ---------- ----
595
596
是否确定要删除以上对象 (输入 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 对象已删除
RMAN> list copy;
已存档的日志副本列表
关键字
------- ---- ------- - ---------- ----
597
598
....
606
注意:以上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
未找到已废弃的备份
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;
关于4、5两项可以查看地址