什么是备份的保留策略(retention policy)

  保留策略就是指某份备份是否要保留以及保留多久。可以使用configure retention policy命令来创建一个一致的、自动的备份保留策略。 当一个备份策略生效后,rman就认为数据文件、控制文件的备份是obsolete的,也就是说根据用户配置,不再需要这些备份进行恢复。用户可以使用report obsolete命令找出obsolete的文件并使用delete obsolete将其删除。

  随着备份次数的增加,老的备份文件会变得obsolete。rman可以标识出obsolete的文件,但是不会自动删除它们。需要用户手动执行delete obsolete将其删除。

  如果数据库配置了快速闪回区,数据库会根据快速闪回区磁盘quota规则自动删除闪回区内的文件。闪回区的quota规则跟rman备份策略规则是不同的,但是闪回区不会删除没有超过备份策略的备份文件。

obsolete和expired是两个不同的概念

  备份是否obsolete,是由备份策略决定的,是指超过了备份策略的限制,在恢复的时候不再需要的文件;expired是指rman在执行crosscheck检查的时候,找不到这些文件。一句话,obsolete是指"不再需要",expired是指"找不到"。

  

  保留策略是针对数据文件和控制文件的full备份或level 0备份(不管是datafile image copy, a proxy copy, or part of a backup set)。对于datafile copies和proxy copies,如果rman认为其不再被需要就可以删除。对于备份集中的datafile备份,只有整个备份集都变成obsolete后才可以被删除。

  备份策略除了对数据文件和控制文件的full和level 0备份有效外,还会影响归档日志和level 1增量备份。首先rman检测出那些数据文件、控制文件备份是obsolete的,然后rman会将那些恢复时候不再需要的归档日志、level 1增量备份认为是obsolete的。

report obsolete和delete obsolete命令是如何起作用的:
主要分为两步

(1)首先,对于full backup、datafile copy和level 0的增量备份,rman会根据retention policy识别出哪些是obsolete的。

(2)然后,对于归档日志和level 1的增量备份,如果其对应的full backup、datafile copy和level 0的增量备份已经是obsolete的,也会被认为是obsolete的,因为已经不再需要它们进行数据恢复。

NOTE:  A 'delete obsolete' does not check that the archivelog files have been backed up before it deletes them.

保留备份策略的类型:(有两种备份类型)

(1)redundancy(冗余):默认是冗余

rman> configure retention policy to redundancy x;

(2)recovery window(恢复窗口)

rman> configure retention policy to recovery window of x days;

配置恢复窗口期的时候,时间应该不大于参数control_file_record_keep_time 的值。

取消备份策略:(永不将备份置为obsolete)

rman> configure retention policy to none;

如何让备份不受备份策略影响:
用户可能有长期保留数据备份的需求(超出rman的保留策略设置)。这些备份信息应该被记录在rman repository中,但是应该超出rman备份保留策略的限制,否则会被标识为obsolete的。
可以在备份时使用keep关键字、或者备份后使用change...keep来实现。
对于归档日志可以使用logs关键字,这样就不会在超过保留策略后被标识为obsolete的
示例:

# creates a backup and exempts it from retention policy until last day of 2007
rman> backup database keep until time "to_date('31-dec-2007', 'dd-mon-yyyy')" nologs; # specifies that backupset 2 is no longer exempt from the retention policy
rman> change backupset 2 nokeep; # creates a backup that is indefinitely exempt from the retention policy
rman> backup tablespace users keep forever nologs;

Rman备份的保留策略(retention policy)的更多相关文章

  1. TFS 2013 生成(构建)历史记录保持策略(Retention Policy)

    TFS服务器通过自动构建,实现软件生成和发布的自动化过程,这一直是TFS系统中非常重要的一个功能模块.近年来发布的TFS版本,都在自动化构建方面大幅增强了相应的功能.在这篇博客里我主要总结TFS 20 ...

  2. RMAN增量备份-备份保留策略-设置备份集属性

    RMAN增量备份:增量备份级别:0,1,2,3,4BACKUP DATABASE也是创建数据库的完整备份,但是这种备份不同于增量备份的0级备份.这种备份不包含增量备份的0级备份,并不支持在此基础上再创 ...

  3. rman 备份并异机恢复

    1.RMAN 备份脚本 RUN { CONFIGURE RETENTION POLICY DAYS; CONFIGURE CONTROLFILE AUTOBACKUP ON; CONFIGURE CO ...

  4. Oracle RMAN备份策略

    建立增量备份:如果数据库运行于不归档模式下,只能在数据库干净关闭的情况下 ( 以 normal .immediate . transactional 方式关闭 ) 才能进行一致性的增量备份,如果数据库 ...

  5. RMAN备份演练进阶篇

    前篇介绍了通过rman进行各种备份,进阶篇则主要是rman的一些功能扩展和增加功能,利用前篇你已经完全可以完成数据库的备份,而通过本篇你可以更好更方便的完成数据库的备份. 一.建立增量备份 如果数据库 ...

  6. RMAN 备份详解

    一.数据库备份与RMAN备份的概念 1.数据库完全备份:按归档模式分为归档和非归档 归档模式 打开状态,属于非一致性备份        关闭状态,可以分为一致性和非一致性 非归档模式 打开状态,非一致 ...

  7. RMAN备份FORMAT格式中%的含义

    使用格式串先看例子:Configure channel 1 device type disk format 'd:/backup/orcl/backup_%U';在configure 命令中经常使用格 ...

  8. RMAN备份(转)

    原文:http://blog.csdn.net/leshami/article/details/6032739 一.数据库备份与RMAN备份的概念 1.数据库完全备份:按归档模式分为归档和非归档 归档 ...

  9. RMAN备份详解

    1.7.1数据库备份与RMAN备份的概念 1.数据库完全备份:按归档模式分为归档和非归档 归档模式 打开状态,属于非一致性备份 关闭状态,可以分为一致性和非一致性 非归档模式 打开状态,非一致性备份无 ...

随机推荐

  1. pycharm使用笔记

    Basic code completion (the name of any class, method or variable) control + 空格  # 代码补全,如果跟系统spotligh ...

  2. Rails--export csv

    --controller def export_agent_impressions export_start_time = Time.parse(params[:es_time]) + 7.hours ...

  3. js里面的等于号--

    一个是赋值等于号,二个是对比等于号,那么三个等于号是什么用的呢   有时候会看到在判断两个对象是否相等的时候使用了三个等号(===),它和两个等号(==)有什么区别呢?简单来说就是使用“==”时,如果 ...

  4. Map的数据结构

    一:Map<String,Map<String,Map<String,List<A>>>>

  5. EBS 资源路径

    /data03/DEV4/comn/java/cmcc/upload cd  $OA_HTML /data03/DEV4/comn/html 日志 $IAS_ORACLE_HOME/Apache/Js ...

  6. Java反射机制深入研究

    ava 反射是Java语言的一个很重要的特征,它使得Java具体了“动态性”.   在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法? ...

  7. 【iTerm2】美化你的Terminal 赠佛祖像

    我们开发就是喜欢各种酷炫的东西,对于有洁癖的我,连命令行都不放过了 先上图看效果,命令行显示高亮部分 实现过程: 第一步:.bash_prompt脚本 # ~/.bash_prompt # This  ...

  8. yum change source repo centos共存安装sun jdk6和jdk7

    之前一直使用的是163的源,今天从微博看到阿里云推出了自己的源.因为我的主机是阿里云,所以可以走内网,速度提升更快.过程如下:cd /etc/yum.repos.d/mv mv CentOS-Base ...

  9. Qt和KDevelop在Linux下安装(qt-x11-commercial-src-4.3.1和kdevelop-3.5.0)

    qt-x11-commercial-src-4.3.1.tar.gz.kdevelop-3.5.0.tar.bz2在Fedora 8下安装. 安装KDevelop:安装KDevelop3.5要求,KD ...

  10. 学习之js绑定事件

    由于ie中绑定事件的bug,所以产生了用原生的实践操作来模拟事件绑定的方法,跟着李炎恢学的一招. function addEvent(obj, type, fn){ if(obj.addEventLi ...