您的位置:首页 > 其它

了解crosscheck archivelog all; 和 delete expired archivelog all;

2016-04-13 10:21 351 查看
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;的作用就是检查控制文件和实际物理文件的差别。

delete expired archivelog all;就是同步控制文件的信息和实际物理文件的信息。

如果单独执行crosscheck而没有执行delete那么备份还是失败的,原因是那些控制文件的信息和实际的信息还是不同。

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

实例

Unix下 oracle数据库在迁移当中一个归档文件丢失了,rman备份归档日志时提示 某个归档日志找不到,

请问如何在不停止oracle数据库情况下 截断归档日志,重新开始新的归档!

crosscheck archivelog all

delete archivelog all;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: