如果归档日志在rman备份前被物理删除过,rman备份过程中会报以下错误
RMAN> backup archivelog all format=’/u01/app/oracle/backup/%U_%s.bak’ ;
Starting backup at 02-JAN-15
current log archived
using channel ORA_DISK_1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of backup command at 01/02/2015 09:27:25
RMAN-06059: expected archived log not found, loss of archived log compromises recoverability
ORA-19625: error identifying file /u01/app/oracle/oradata/arch/arch_1_50_865204787.arc
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
为解决archivelog 在控制文件中的信息与OS物理情况一致可以使用以下方法解决。
1. $rman
2. connect target /
3. crosscheck archivelog all;
4. delete expired archivelog all;
===========================
原理
在controlfile中记录着每一个archivelog的相关信息,当我们在OS下把这些物理文件delete掉或异常变动后,在controlfile中仍然记录着这些archivelog的信息,当我们手工清除archive目录下的文件后,这些记录并没有被我们从controlfile中清除掉,也就是oracle并不知道这些文件已经不存在了!这时候我们要做手工的清除。 crosscheck archivelog all;的作用就是检查控制文件和实际物理文件的差别。
delete expired archivelog all;就是同步控制文件的信息和实际物理文件的信息。如果单独执行crosscheck而没有执行delete那么备份还是失败的,原因是那些控制文件的信息和实际的信息还是不同。crosscheck backupset 是检查备份集和实际的文件。
1、备份集有两种状态A(Available,RMAN认为该项存在于备份介质上)X(Expired,备份存在于控制文件或恢复目录中,但是并没有物理存在于备份介质上)
2、 crosscheck 的目的是检查RMAN 的目录以及物理文件,如果物理文件不存在于介质上,将标记为Expired。如果物理文件存在,将维持Available。如果原先标记为Expired的备份集再次存在于备份介质上(如恢复了损坏的磁盘驱动器后),
crosscheck将把状态重新从Expired标记回Available。
3、 crosscheck 输出分两部分。第一部分列出确定存在于备份介质上的所有备份集片,第二部分列出不存在于备份介质上的备份集片,并将其标记为Expired。当设置备份保存策略后,一个备份过期,crosscheck之后标记为丢弃的备份状态依旧为available,要删除丢弃备份delete obsolete。
crosscheck archivelog all和crosscheck backup of archivelog all的区别
crosscheck archivelog all; 验证的是DB的归档日志即log_archive_dest参数指定位置的文件,当手工删除了归档日志以后,Rman备份会检测到日志缺失,从而无法进一步继续执行。所以此时需要手工执行crosscheck过程,之后Rman备份可以恢复正常。
RMAN> crosscheck archivelog all;
crosscheck backup of archivelog all;验证的是用rman 备份归档日志的备份文件,执行完这个命令后可用delete expired archivelog;删除状态为expired的备份文件RMAN> crosscheck backup of archivelog all;
未经允许不得转载:SRE空间 » rman 备份archivelog 报错
评论前必须登录!
注册