zoukankan      html  css  js  c++  java
  • Rman备份的保留策略(retention policy)

    什么是备份的保留策略(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;
    
  • 相关阅读:
    MacBook Pro修改hosts
    Python WebSocket
    TCP三次握手和四次挥手过程
    Tcp三次握手和四次挥手
    常见正则表达式
    Python正则表达式
    Python使用gevent实现协程
    Tcp客户端构建流程
    AC6102开发板USB3.0测试和使用说明
    AC6102 DDR2测试工程
  • 原文地址:https://www.cnblogs.com/abclife/p/5652543.html
Copyright © 2011-2022 走看看