ITPub博客

首页 > Linux操作系统 > Linux操作系统 > [zt] crosscheck archivelog all

[zt] crosscheck archivelog all

原创 Linux操作系统 作者:tolywang 时间:2010-09-28 08:19:33 0 删除 编辑


用RMAN的备份中(Veritas等备份软件由于归档日志的异常导致归档日志备份失败)是经常碰到的,解决方法也是非常解单,就是执行2条RMAN的命令:

1. 进入rman  
2. connect target   /
3. crosscheck archivelog all;
4. delete expired archivelog all;

===========================

这2条命令做什么事情,原理是什么。下面说明一下:
在controlfile中记录着每一个archivelog的相关信息,当我们在OS下把这些物理文件
delete掉或异常变动后,在controlfile中仍然记录着这些archivelog的信息,当我们
手工清除archive目录下的文件后,这些记录并没有被我们从controlfile中清除掉,也
就是oracle并不知道这些文件已经不存在了!   这时候我们要做手工的清除。

crosscheck archivelog all;的作用就是检查控制文件和实际物理文件的差别, 如果一些已经删除或丢失,那么设置它们为expired 。 
delete expired archivelog all;就是同步控制文件的信息和实际物理文件的信息。

 

RMAN> crosscheck archivelog all; // validate all archvelogs in your disk. If some are missing, it will treat it as expired.
RMAN> delete expired archivelog all; // it ill delete expired archivelog and updates your controlfile.

 

crosscheck backupset
crosscheck backupset 是检查备份集和实际的文件
1     备份集有两种状态A(Available,RMAN认为该项存在于备份介质上)X(Expired,备份存在于控制文件或恢复目录中,但是并没有物理存在于备份介质上)


2     crosscheck 的目的是检查RMAN 的目录以及物理文件,如果物理文件不存在于介质上,将标记为Expired。如果物理文件存在,将维持Available。如果原先标记为Expired的备份集再次存在于备份介质上(如恢复了损坏的磁盘驱动器后),crosscheck将把状态重新从Expired标记回Available。


3     crosscheck 输出分两部分。第一部分列出确定存在于备份介质上的所有备份集片,第二部分列出不存在于备份介质上的备份集片,并将其标记为Expired。当设置备份保存策略后,一个备份过期,crosscheck之后标记为丢弃的备份状态依旧为availabel,要删除丢弃备份delete obsolete 

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/35489/viewspace-674979/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle , MySQL, SAP IQ, SAP HANA, PostgreSQL, Tableau 技术讨论,希望在这里一起分享知识,讨论技术,畅谈人生 。

注册时间:2007-12-10

  • 博文量
    5595
  • 访问量
    14696249