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个副本,其余的、时间更早的副本会全部被标记为过时的备份。
4、无保留策略 无保留策略也就是禁用保留策略,不使用任何保留策略。 配置无保留策略: configure retention policy to none 恢复到缺省保留策略:configure retention policy clear
5、相关演示
RMAN> show retention policy;
RMAN configuration parameters for database with db_unique_name USBO are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
RMAN> report obsolete;
RMAN retention policy will be applied to the command
RMAN retention policy is set to redundancy 1
Report of obsolete backups and copies
Type Key Completion Time Filename/Handle
-------------------- ------ ------------------ --------------------
Datafile Copy 1 2013/11/11 15:21:04 /u03/database/usbo/fr_area/USBO/datafile/o1_mf_users_9811c028_.dbf
--Author : Leshami
--Blog : http://blog.csdn.net/leshami
RMAN> configure RETENTION POLICY TO recovery window of 2 days;
new RMAN configuration parameters:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 2 DAYS;
new RMAN configuration parameters are successfully stored
RMAN> show retention policy;
RMAN configuration parameters for database with db_unique_name USBO are:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 2 DAYS;
RMAN> list copy;
specification does not match any control file copy in the repository
List of Datafile Copies
=======================
Key File S Completion Time Ckp SCN Ckp Time
------- ---- - ------------------- ---------- -------------------
2 4 A 2013/11/11 15:21:16 3039347 2013/11/11 15:21:16
Name: /u03/database/usbo/fr_area/USBO/datafile/o1_mf_users_9811cddk_.dbf
Tag: TAG20131111T152116
1 4 A 2013/11/11 15:21:04 3039328 2013/11/11 15:21:04
Name: /u03/database/usbo/fr_area/USBO/datafile/o1_mf_users_9811c028_.dbf
Tag: TAG20131111T152103
RMAN> report obsolete;
RMAN retention policy will be applied to the command
RMAN retention policy is set to recovery window of 2 days
no obsolete backups found
RMAN> configure retention policy to none;
old RMAN configuration parameters:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 2 DAYS;
new RMAN configuration parameters:
CONFIGURE RETENTION POLICY TO NONE;
new RMAN configuration parameters are successfully stored
RMAN> show retention policy;
RMAN configuration parameters for database with db_unique_name USBO are:
CONFIGURE RETENTION POLICY TO NONE;
RMAN> configure retention policy clear;
old RMAN configuration parameters:
CONFIGURE RETENTION POLICY TO NONE;
RMAN configuration parameters are successfully reset to default value
RMAN> show retention policy;
RMAN configuration parameters for database with db_unique_name USBO are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default