RMAN 配置保留策略

发布时间 2023-09-22 14:38:35作者: 霜雪吴钩

RMAN保留策略关乎数据的完整性,因此事关重大,由用户定义的、基于用户数据恢复所能承受的容忍度来设置。也就是说根据恢复的需要,用户需要保留几天的数据,或者说用户需要备份的保留几个副本,或者不需要设定保留策略。在生产环境中多数使用的是基于恢复窗口的保留策略,因此需要重点关注与理解其用法。最本文主要描述了RMAN下的三种保留策略方式。


1、什么是备份保留策略


也就是说备份可以保留多久,需要保留多久的问题,我们可以通过configure retention policy 来进行配置
注意,保留策略是相对于恢复而言,也就是说根据恢复的需要来制定保留策略,比如需要恢复到3天以前,或是保留2个不同的副本
Oracle支持三种保留策略,一个是基于恢复窗口的保留策略,一个是基于冗余的保留策略。一个是无保留策略,三种保留策略互斥,不可同时使用
当备份保留策略启用后,已生成的备份满足保留策略之后,会被标记为过时,也就是说RMAN认为恢复已经不再需要用到这些备份
可以通过report obsolete来查看当前数据库的过时的备份。以及使用delete obsolete来删除过时的备份
对于过时的备份(备份集,镜像副本等),在未使用FRA的情形下,RMAN仅仅是对其加以标注,而不会真正删除这些过时的备份
对于使用了FRA(闪回区)的情形,RMAN会自动地删除这些过时的备份以循环利用FRA空间。
注意理解无效的备份或过时的备份,前者执行crosscheck之后,文件没有找到(被删除),后者指文件存在,但是根据保留策略恢复已不再需要用到
保留策略的使用范围
完全备份、level 0、控制文件备份
对于数据文件镜像副本(copy方式),如果RMAN认为该副本不再需要,则可以被删除
对于数据文件备份集,当在备份集内所有的数据文件为过时时,可以被删除

2、基于恢复窗口的保留策略


该方式用于确保将数据库恢复到特定的时间点。比如需要恢复一周以内的数据,使用恢复窗口RECOVERY WINDOW OF 7 DAYS
那么所有与恢复到最近7天的完全备份、增量备份、归档日志,都应当被保留,而且有可能7天以前的备份也需要保留
比如系统中完整地备份是8天以前的,即便当前产生了新的完整备份,上次的完整备份也应当被保留,而不是说只要过了7天这些备份就不再需要
配置恢复窗口保留策略:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
对于上述配置,每一个数据文件、备份应当满足这个条件:SYSDATE - BACKUP CHECKPOINT TIME >= 7,在这之前的备份则是无效的。
下面的恢复窗口分析示例图来自Backup and Recovery User's Guide
恢复窗口分析示例1:

 

恢复窗口为7天,数据库处于归档模式
备份计划是每两周一次全备,分别是: January 1,January 15,January 29,February 12
对于图中的情形,当前的时间点Jan 23,那么7天的恢复窗口则是Jan 16,要能够确保数据可以恢复到Jan 16,
那么Jan 14的备份及archive log 500到log 850都应当被保留,Jan 1的备份是过时的

恢复窗口分析示例2:

 

 

当前的时间位Jan 30,那么7天的恢复窗口是Jan 23,确保Jan 23可恢复则应当自上一次完整备份到Jan 23的archive log可用。
即Jan 14的完整备份必须被保留,log 500到log 1150都必须全部被保留

3、基于冗余的保留策略
基于冗余的保留策略是依据你的备份数,而不是备份天数。该策略是默认的保留策略,被设置为1。
如果将其设置为2,那么Oralce则会为当前备份保留2个副本,其余的、时间更早的副本会全部被标记为过时的备份。

缺省的保留策略配置为REDUNDANCY 1。

恢复到缺省保留策略:configure retention policy clear


4、无保留策略
无保留策略也就是禁用保留策略,不使用任何保留策略。
配置无保留策略: configure retention policy to none

————————————————
版权声明:本文为CSDN博主「Leshami」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/leshami/article/details/15498809