博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

关于RMAN中的crosscheck、obsolete以及expired的问题

Posted on 2019-11-29 11:19  myuserkill  阅读(769)  评论(0编辑  收藏  举报

 

RMAN crosscheck命令此命令用于核对磁盘和磁带上的备份文件,以确保RMAN资料库与备份文件保持同步。注意:该命令只会检查RMAN资料库所记载的备份文件。当执行crosscheck命令时,如果资料库记录不匹配于备份文件的物理状态,那么该命令会更新资料库记录的状态信息。备份文件的状态包括:avaliable,unavaliable,expired。
1.核对所有备份集: RMAM>crosscheck backup;
2.核对所有数据文件的备份集  RMAN>crosscheck backup of database;
3.核对特定表空间的备份集 RMAN>crosscheck backup of tablespace users;
4.核对特定数据文件的备份集 RMAN>crosscheck backup of datafile 4;
5.核对控制文件的备份集 RMAN>crosscheck backup of controlfile; 6.核对spfile的备份集 RMAN>crosscheck backup of spfile;
7.核对归档日志的备份集 RMAN>crosscheck backup of archivelog sequence 3;                       RMAN>crosscheck archive all;
8.核对所有镜像副本  RMAN>crosscheck copy;
9.核对所有数据文件的镜像副本 RMAN>crosscheck copy of database;
10.核对特定表空间的镜像副本  RMAN>crosscheck copy of tablespace users;
11.核对特定数据文件的镜像副本 RMAN>crosscheck copy of datafile 6;
12.核对归档日志的影响副本 RMAN>crosscheck copy of archivelog sequence 4;
13.核对控制文件的镜像副本 RMAN>crosscheck copy of controlfile;


 delete expired backup;          --删除失效的备份集delete expired copy;            --删除失效的镜像副本delete expired archivelog all;  --删除失效的归档日志



###关于obsolete   retention policy:设置备份保留策略。rman会将超出时间的备份文件标识为废弃(obsolete)。rman跟踪备份的数据文件、控制文件、归档日志文件,并确定哪些需要保存,哪些需要标记为废弃,但是rman不自动删除废弃的备份文件。
命令:     RMAN>report obsolete     --显示哪些备份超出了备份保留策略     RMAN>delete obsolete     --删除废弃的文件,有交互     RMAN>delete noprompt obsolete  --删除废弃的文件,无交互==设置备份的保留策略1.根据窗口时间    RMAN>configure retention policy to recovery windows of 3 days;      --rman会保留3天内的备份集有效,也就是可以恢复到3天内的任意  时间点,超过3天的备份集可能会被设置为废弃(obsolete)状态。(不确定是不是超过3天的备份集一定会被obsolete掉。)2.根据备份的份数    RMAN>configure retention policy to redundancy 3;      --rman保留最近3次的备份集,当第4次备份集出现时,第一次的就标识为过时(也就是废弃)3.禁用备份的保留策略    RMAN>configure retention policy to none;       --此时report obsolete和delete obsolete不会把任何备份视为废弃

###关于expired失效(区别于obsolete),其实就是人为的或者其他原因,使用操作系统删除了这些备份文件,但控制文件还存在着这些备份的信息,当运行crosscheck命令时,会将这些备份文件标识为expired。
1.检查备份是否有效RMAN>crosscheck backup;2.删除失效的备份,有交互RMAN>delete expired backup;3.删除失效的备份,无交互RMAN>delete noprompt expired backup;4.删除失效的归档备份RMAN>delete expired archivelog all;

######!!!!!crosscheck=====crosscheck只能够检测备份集是否有效(最常见的情况就是物理上是否还存在),并且可以用来删除失效(expired)的备份集,而不能用来删除违背备份策略(obsolete)的备份集,如果要删除违背备份策略的备份集,需要使用obsolete。