查看归档日志列表
RMAN> list archivelog all;
查看失效的归档日志列表
RMAN> list expired archivelog all;
先来俩在controlfile中记录着每一个archivelog的相关信息,当我们在OS下把这些物理文件delete掉或异常变动后,在controlfile中仍然记录着这些archivelog的信息,当我们手工清除archive目录下的文件后,这些记录并没有被我们从controlfile中清除掉,也就是oracle并不知道这些文件已经不存在了!这时候我们要做手工的清除。
# 检查控制文件和实际物理文件的差别
RMAN> crosscheck archivelog all;
# 同步控制文件的信息和实际物理文件的信息
RMAN> delete expired archivelog all;
删除示例
指定删除7天前的归档日志
RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE ‘SYSDATE-7';
删除log sequence为16及16之前的所有归档日志
delete archivelog until sequence 16;
删除系统时间7天以前的归档日志,不会删除闪回区有效的
delete archivelog all completed before 'sysdate-7';
删除系统时间1天以内到现在的归档日志
delete archivelog from time 'sysdate-1';
该命令清除所有的归档日志
delete noprompt archivelog all completed before 'sysdate';
delete noprompt archivelog all;
obsolete和expired
obsolete
当备份或者副本根据保存策略而被丢弃的时候,就会被标记为该状态。
例:比如你设置恢复窗口为7天,今天10号,那2号之前(包括2号)的都被认为是“过期的”。
expired
使用crosscheck对备份进行校验,当备份或者副本被存储在rman目录中,但是并没有物理存在于备份介质上时,就会被标记为该状态;
例:在操作系统层删除备份集后,用crosscheck 检测后就标志为X(expired)。通常指丢失(被删除)的备份。
总结如下
obsolete 指的就是超过备份策略的备份集
expired 指的是rman里面有,但是磁盘上没有的备份集,需要crosscheck一下
相关脚本
run {
delete noprompt obsolete;
crosscheck archivelog all;
delete noprompt expired archivelog all;
}
备份相关:
run{
crosscheck backup;
delete noprompt expired backup;
}
rman target / << EOF
crosscheck archivelog all;
delete noprompt expired archivelog all;
delete noprompt force archivelog all completed before 'sysdate';
EOF
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




