• 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;
    
  • 相关阅读:
    Docker安装Redis
    C语言读取Java的字节码文件的第一步
    springdataredis之RedisMessageListenerContainer源码解析
    【转载】logback自定义目录及输出格式
    【转载】springbootdependencies 跟 springbootstarterparent
    Docker安装PostgreSQL数据库
    SpringBoot整合Redis实现发布订阅功能实践
    iso 刻录软件 openwrt
    python selenium 获取UA 睁yan
    cnvd 获取最新cookie (反爬) 睁yan
  • 原文地址:https://www.cnblogs.com/abclife/p/5652543.html
Copyright © 2020-2023  润新知