今天有朋友问,到底RMAN里面的命令delete expired和delete obsolete有什么区别?
先来看一下官方文档中的解释。via Backup and Recovery User Guide
delete exipired
If you run CROSSCHECK, and if RMAN cannot locate the files, then it updates their records in the RMAN repository to EXPIRED status. You can then use the DELETE EXPIRED command to remove records of expired backups and copies from the RMAN repository.
delete obsolete
The RMAN DELETE command supports an OBSOLETE option, which deletes backups that are no longer needed to satisfy specified recoverability requirements. You can delete files obsolete according to the configured default retention policy, or another retention policy that you specify as an option to the DELETE OBSOLETE command. As with other forms of the DELETE command, the files deleted are removed from backup media, deleted from the recovery catalog, and marked as DELETED in the control file.
delete expired删除的是那些本来RMAN以为存在但是实际上在磁盘或者磁带上已经被删除了的信息,删除的只是RMAN资料库中的记录;delete obsolete则删除旧于备份保留策略定义的备份数据同时也更新RMAN资料库以及控制文件。
那么再形象一点儿解释的话,就是“在不在”和“要不要”的区别。expired是不在了,obsolete是不要了。
不在的并不一定是不需要的。
不需要的也不一定就不在了。
外一句:数据库管理的时候,痛苦的是不需要的还在,还占据着资源;比这更痛苦的是,需要的已经不在了,想恢复却找不到备份集。 😀