RMAN 配置归档日志删除策略

        Oracle 11g中对于归档日志的删除,除了遵循RMAN保留策略外,也可以通过RMAN来配置归档日志的删除策略,也就是归档日志何时可以被删除。归档日志删除策略适用于所有归档位置(使用快速闪回区FRA/不使用FRA)。本文主要描述归档日志删除策略并给出了具体的演示。

 
1、关于归档日志删除策略
      也就是哪些归档日志符合删除策略能够被删除,如前所述,归档位置适用于所有归档位置(使用快速闪回区FRA/不使用FRA)
      当启用该策略后,如归档日志存在于FRA中,则Oracle会尽可能根据保留他们,一旦FRA空间告急,则Oracle会根据归档日志删除策略自动删除
      对于不在FRA中的归档日志,需要手动使用delete obsolete或delete archivelog方式来删除日志
      无论归档日志存在于FRA内或外,都可以通过BACKUP ... DELETE INPUT or DELETE ARCHIVELOG方式来删除
      该策略不适用于使用LogMiner方式从主数据库传送到逻辑standby生成的外部归档日志文件,因为这些日志文件不能够在逻辑standy上备份或恢复
  

2、配置归档日志删除策略
     使用下面的方式来配置归档日志删除策略
         configure archivelog deletion policy to backed up 2 times to sbt;
         configure archivelog deletion policy to backed up 1 times to device type disk;
         configure archivelog deletion policy to applied on standby;
         configure archivelog deletion policy to shipped on standby;
         configure archivelog deletion policy clear;
    对于Oracle 10g没有该特性,但有一个类似的用于配置归档日志被备份次数,如下;
         configure archivelog backup copies for device type disk to ${archiveretention};
  
  
3、禁用归档日志删除策略
      缺省情况下,该策略被设置为none。也就是说根据RMAN备份保留策略,对于FRA中的归档日志,被备份过一次(到磁盘或磁带)即符合条件被删除
     如果Oracle不再需要当前的归档日志用于保证数据库时点恢复或数据库闪回,则RMAN备份保留策略认为当前日志为obsolete
     在SYSDATE-'DB_FLASHBACK_RETENTION_TARGET'之后创建的归档日志是需要被保留的

4、启用归档日志删除策略
     一旦启用该策略,则指定的归档日志被备份数量达到设定值后,这些归档日志能够被删除
     BACKUP ARCHIVELOG 会在未超出指定备份数的情况下(比如设置为2)备份归档日志到指定位置,如超出2次,则RMAN会跳过这些备份过2次的归档日志
     对于上述的情形,可以为BACKUP ARCHIVELOG适用force选项来强制备份归档日志
     如果启用该策略且配置为APPLIED ON STANDBY子句,则所有强制standby位置被apply后,这些归档日志会被RMAN删除
     如果启用该策略且配置为SHIPPED ON STANDBY子句,则所有强制standby位置被成功传送后,这些归档日志会被RMAN删除
  
5、演示归档日志删除策略

[oracle@linux1 ~]$ rman target /

Recovery Manager: Release 11.2.0.1.0 - Production on Tue Nov 12 15:10:17 2013

--查看当前数据库保留策略
RMAN> show retention policy;

RMAN configuration parameters for database with db_unique_name USBO are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default

--查看当前数据库保归档日志留策略
RMAN> show archivelog deletion policy;

RMAN configuration parameters for database with db_unique_name USBO are:
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default

--查看过时的备份
RMAN> report obsolete;

RMAN retention policy will be applied to the command
RMAN retention policy is set to redundancy 1
no obsolete backups found

--列出copy副本
RMAN> list copy;

specification does not match any datafile copy in the repository
specification does not match any control file copy in the repository
List of Archived Log Copies for database with db_unique_name USBO
=====================================================================

Key     Thrd Seq     S Low Time
------- ---- ------- - -------------------
124     1    121     A 2013/11/12 15:34:15
        Name: /u03/database/usbo/fr_area/USBO/archivelog/2013_11_12/o1_mf_1_121_983pm3gp_.arc  --当前的归档日志

--修改当前的归档日志保留策略为2个备份副本
RMAN> configure archivelog deletion policy to backed up 2 times to device type disk;

new RMAN configuration parameters:
CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 2 TIMES TO DISK;
new RMAN configuration parameters are successfully stored

--备份归档日志,并删除已经备份的归档日志
RMAN> backup archivelog all delete input;

Starting backup at 2013/11/12 15:37:25
current log archived
using channel ORA_DISK_1
channel ORA_DISK_1: starting archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=121 RECID=124 STAMP=831310563
input archived log thread=1 sequence=122 RECID=125 STAMP=831310645
channel ORA_DISK_1: starting piece 1 at 2013/11/12 15:37:26
channel ORA_DISK_1: finished piece 1 at 2013/11/12 15:37:27
piece handle=/u03/database/usbo/fr_area/USBO/backupset/2013_11_12/o1_mf_annnn_TAG20131112T153726_983pop3p_.bkp
tag=TAG20131112T153726 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
channel ORA_DISK_1: deleting archived log(s)
RMAN-08138: WARNING: archived log not deleted - must create more backups --->出现警告提示,日志当前不能被删除,更多的备份需要创建
archived log file name=/u03/database/usbo/fr_area/USBO/archivelog/2013_11_12/o1_mf_1_121_983pm3gp_.arc thread=1 sequence=121
RMAN-08138: WARNING: archived log not deleted - must create more backups
archived log file name=/u03/database/usbo/fr_area/USBO/archivelog/2013_11_12/o1_mf_1_122_983pooxb_.arc thread=1 sequence=122
Finished backup at 2013/11/12 15:37:27

--从os层面查看归档日志,当前已备份的两个归档日志没有删除
sys@USBO> ho ls -hltr /u03/database/usbo/fr_area/USBO/archivelog/2013_11_12/*
-rw-r----- 1 oracle asmadmin 3.0K Nov 12 15:36 /u03/database/usbo/fr_area/USBO/archivelog/2013_11_12/o1_mf_1_121_983pm3gp_.arc
-rw-r----- 1 oracle asmadmin 4.5K Nov 12 15:37 /u03/database/usbo/fr_area/USBO/archivelog/2013_11_12/o1_mf_1_122_983pooxb_.arc

--从视图查询也可以获得其状态
sys@USBO> select name,status from v$archived_log where STATUS='A';

NAME                                                                             STA
-------------------------------------------------------------------------------- ---
/u03/database/usbo/fr_area/USBO/archivelog/2013_11_12/o1_mf_1_121_983pm3gp_.arc  A
/u03/database/usbo/fr_area/USBO/archivelog/2013_11_12/o1_mf_1_122_983pooxb_.arc  A

--第二次备份归档日志
-- Author : Leshami
-- Blog   : http://blog.csdn.net/leshami
RMAN> backup archivelog all delete input tag=arc_2nd;

Starting backup at 2013/11/12 15:41:58
current log archived
using channel ORA_DISK_1
channel ORA_DISK_1: starting archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=121 RECID=124 STAMP=831310563   --sequence 121与122依旧被备份
input archived log thread=1 sequence=122 RECID=125 STAMP=831310645
input archived log thread=1 sequence=123 RECID=126 STAMP=831310918
channel ORA_DISK_1: starting piece 1 at 2013/11/12 15:41:58
channel ORA_DISK_1: finished piece 1 at 2013/11/12 15:41:59
piece handle=/u03/database/usbo/fr_area/USBO/backupset/2013_11_12/o1_mf_annnn_ARC_2ND_983py6mv_.bkp tag=ARC_2ND comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
channel ORA_DISK_1: deleting archived log(s)                       --sequence 121与122被删除
archived log file name=/u03/database/usbo/fr_area/USBO/archivelog/2013_11_12/o1_mf_1_121_983pm3gp_.arc RECID=124 STAMP=831310563
archived log file name=/u03/database/usbo/fr_area/USBO/archivelog/2013_11_12/o1_mf_1_122_983pooxb_.arc RECID=125 STAMP=831310645
RMAN-08138: WARNING: archived log not deleted - must create more backups --->出现警告提示,日志123不能被删除,更多的备份需要创建
archived log file name=/u03/database/usbo/fr_area/USBO/archivelog/2013_11_12/o1_mf_1_123_983py6gh_.arc thread=1 sequence=123

--再次查看,只有sequence 123存在,121与122已经被删除
RMAN> list copy;

specification does not match any datafile copy in the repository
specification does not match any control file copy in the repository
List of Archived Log Copies for database with db_unique_name USBO
=====================================================================

Key     Thrd Seq     S Low Time
------- ---- ------- - -------------------
126     1    123     A 2013/11/12 15:37:25
        Name: /u03/database/usbo/fr_area/USBO/archivelog/2013_11_12/o1_mf_1_123_983py6gh_.arc
Finished backup at 2013/11/12 15:41:59

--配置新的归档日志删除策略
RMAN> configure archivelog deletion policy to backed up 1 times to device type disk;

old RMAN configuration parameters:
CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 2 TIMES TO DISK;
new RMAN configuration parameters:
CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 1 TIMES TO DISK;
new RMAN configuration parameters are successfully stored

--第三次备份归档日志
RMAN> backup archivelog all tag=arc_3rd;

Starting backup at 2013/11/12 15:44:11
current log archived
using channel ORA_DISK_1      --下面是skip的提示信息,因为根据新的策略,sequence 123已经被备份过一次了
skipping archived log file /u03/database/usbo/fr_area/USBO/archivelog/2013_11_12/o1_mf_1_123_983py6gh_.arc; already backed up 1 time(s)
channel ORA_DISK_1: starting archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=124 RECID=127 STAMP=831311051
channel ORA_DISK_1: starting piece 1 at 2013/11/12 15:44:12
channel ORA_DISK_1: finished piece 1 at 2013/11/12 15:44:13
piece handle=/u03/database/usbo/fr_area/USBO/backupset/2013_11_12/o1_mf_annnn_ARC_3RD_983q2d34_.bkp tag=ARC_3RD comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 2013/11/12 15:44:13

--清除策略
RMAN> configure archivelog deletion policy clear;

old RMAN configuration parameters:
CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 1 TIMES TO DISK;
RMAN configuration parameters are successfully reset to default value

--列出所有归档日志的备份信息
RMAN> list backup of archivelog all;

List of Backup Sets
===================

BS Key  Size       Device Type Elapsed Time Completion Time
------- ---------- ----------- ------------ -------------------
24      8.00K      DISK        00:00:00     2013/11/12 15:37:26
        BP Key: 24   Status: AVAILABLE  Compressed: NO  Tag: TAG20131112T153726
        Piece Name: /u03/database/usbo/fr_area/USBO/backupset/2013_11_12/o1_mf_annnn_TAG20131112T153726_983pop3p_.bkp

  List of Archived Logs in backup set 24
  Thrd Seq     Low SCN    Low Time            Next SCN   Next Time
  ---- ------- ---------- ------------------- ---------- ---------
  1    121     3090437    2013/11/12 15:34:15 3090507    2013/11/12 15:36:03
  1    122     3090507    2013/11/12 15:36:03 3090591    2013/11/12 15:37:25

BS Key  Size       Device Type Elapsed Time Completion Time
------- ---------- ----------- ------------ -------------------
25      37.50K     DISK        00:00:00     2013/11/12 15:41:58
        BP Key: 25   Status: AVAILABLE  Compressed: NO  Tag: ARC_2ND
        Piece Name: /u03/database/usbo/fr_area/USBO/backupset/2013_11_12/o1_mf_annnn_ARC_2ND_983py6mv_.bkp

  List of Archived Logs in backup set 25
  Thrd Seq     Low SCN    Low Time            Next SCN   Next Time
  ---- ------- ---------- ------------------- ---------- ---------
  1    121     3090437    2013/11/12 15:34:15 3090507    2013/11/12 15:36:03
  1    122     3090507    2013/11/12 15:36:03 3090591    2013/11/12 15:37:25
  1    123     3090591    2013/11/12 15:37:25 3090746    2013/11/12 15:41:58

BS Key  Size       Device Type Elapsed Time Completion Time
------- ---------- ----------- ------------ -------------------
26      2.50K      DISK        00:00:00     2013/11/12 15:44:12
        BP Key: 26   Status: AVAILABLE  Compressed: NO  Tag: ARC_3RD
        Piece Name: /u03/database/usbo/fr_area/USBO/backupset/2013_11_12/o1_mf_annnn_ARC_3RD_983q2d34_.bkp

  List of Archived Logs in backup set 26
  Thrd Seq     Low SCN    Low Time            Next SCN   Next Time
  ---- ------- ---------- ------------------- ---------- ---------
  1    124     3090746    2013/11/12 15:41:58 3090839    2013/11/12 15:44:11

    

相关参考
    RMAN 配置保留策略    

    Oracle 闪回区(Oracle Flash recovery area)

    Oracle 快照控制文件(snapshot control file)

    中小型数据库 RMAN CATALOG 备份恢复方案(一)

    中小型数据库 RMAN CATALOG 备份恢复方案(二)

    中小型数据库 RMAN CATALOG 备份恢复方案(三)

    基于RMAN实现坏块介质恢复(blockrecover)

    用 DBMS_REPAIR 修复坏块

    RMAN 数据库克隆文件位置转换方法

    基于RMAN的异机数据库克隆(rman duplicate)

    基于 RMAN 的同机数据库克隆

    基于用户管理的同机数据库克隆

    基于RMAN从活动数据库异机克隆(rman duplicate from active DB)

    RMAN duplicate from active 时遭遇 ORA-17627 ORA-12154

    Oracle 冷备份

    Oracle 热备份

    Oracle 备份恢复概念

    Oracle 实例恢复

    Oracle 基于用户管理恢复的处理

    SYSTEM 表空间管理及备份恢复

    SYSAUX表空间管理及恢复

    Oracle 基于备份控制文件的恢复(unsing backup controlfile)

    RMAN 概述及其体系结构

    RMAN 配置、监控与管理

    RMAN 备份详解

    RMAN 还原与恢复

    RMAN catalog 的创建和使用

    基于catalog 创建RMAN存储脚本

    基于catalog 的RMAN 备份与恢复

    RMAN 备份路径困惑

    自定义 RMAN 显示的日期时间格式

    只读表空间的备份与恢复

    Oracle 基于用户管理的不完全恢复

    理解 using backup controlfile

    使用RMAN实现异机备份恢复(WIN平台)

    使用RMAN迁移文件系统数据库到ASM

    基于Linux下 Oracle 备份策略(RMAN)

    Linux 下RMAN备份shell脚本

    使用RMAN迁移数据库到异机

    RMAN 提示符下执行SQL语句

    Oracle 基于 RMAN 的不完全恢复(incomplete recovery by RMAN)

    rman 还原归档日志(restore archivelog)

时间: 2024-10-29 07:01:54

RMAN 配置归档日志删除策略的相关文章

Oracle RMAN 清除归档日志

      在开发环境及UAT环境经常碰到需要清除归档日志的情形,对于这个问题方法有很多.可以直接使用rm方式清除归档日志,也可以使用find命令来查找符合条件的记录来清除归档日志,或者直接写个shell脚本来搞定.这样在DEV或者UAT还可以,但是在Prod环境还是建议使用RMAN提供的命令来搞定比较妥当.因为rm,find方式删除了实际的归档日志也释放了空间,但对应的存储在控制文件中的归档信息并没有彻底清除.依旧占用着一些空间未能及时清除而需要控制文件通过age out方式来释放空间.本文描

rman 还原归档日志(restore archivelog)

     听说过还原(restore)数据库,表空间及数据库文件,使用归档日志恢复(recover)数据库,表空间,数据库文件.咦,还有还原归档日志这一说法呢?没错,可能我们忽略了还原归档日志这一个过程,原因是还原归档日志通常情况下是oracle在recover时自动完成的.大多数情况下我们是先还原数据库,恢复数据库,打开数据库.实际上在恢复数据库之前有一个动作,那就是还原归档日志,也就是将日志文件还原到缺省的归档位置,如果我们在备份归档日志时使用了delete [all] input子句的话.

配置归档日志,让数据库管理更加顺畅

一.更改日志操作模式三步走. 默认情况下,Oracle数据库采用的是非归档模式.但是,非归档模式不能够防止因物理损坏而导致丢失数据问题.为此数据库管理员可能需要把日志操作模式从非归档模式转换为归档模式.其实,要进行这个转换的话,只需要通过简单的三个步骤即可.不过在进行操作之前,要需要注意.以下的操作都必须要求用户具有数据库管理员的权限,即只有SYSDBA或者SYSOPER身份才能够执行如下的操作. 要更改日志操作模式,具体操作步骤如下. 第一步:先确定当前的日志操作模式.当数据库管理员更改当前操

备份恢复6——rman配置和设置

原文转自:http://blog.csdn.net/tianlesoftware/article/details/5674309 一. 配置数据库以ARCHIVELOG 模式运行  在ORACLE 10g 之前,在将数据库置入Archivelog 模式后,需要启动arch进程. 设置参数LOG_ARCHIVE_START 为true,也可启动arch进 程.在10g以后,不需要使用该方法,当数据库处于archivelog模式时,Oracle 会自动启动arch进程. Arch 进程由LGWR 进

Linux怎么自动删除归档日志文件?Linux自动删除归档日志文件的教程

1.日志删除策略 自动删除7天前的归档日志与备份文件. 2.调度计划 0 0 * * * nohup sh /db2backup/script/auto_rm_logs.sh & 3.日志删除脚本 auto_rm_logs.sh #!/bin/sh #------------------------------------- # rm db2 archive log file and *.tgz files @hury # create @2016-12-13 # script name:aut

11g主库归档自动删除的小问题分析

最近在无疑中查看一个数据库的日志的时候,发现里面有这么一段内容. Sat Feb 06 10:07:25 2016 Deleted Oracle managed file +ARCH/testdb2/archivelog/2016_01_13/thread_1_seq_4566.261.901038877 Archived Log entry 9262 added for thread 1 sequence 4678 ID 0x26b3e123 dest 1: Sat Feb 06 14:04:

查看oracle归档日志路径2

在Oracle中,数据一般是存放在数据文件中,不过数据库与Oracle最大的区别之一就是数据库可以在数据出错的时候进行恢复. 这个也就是我们常见的Oracle中的重做日志(REDO FILE)的功能了.在重做日志分成2部分,一个是在线重做日志文件,另外一个就是归档日志文件.      这里不详细说明在线重做日志,而是说一下归档日志(Archive Log).在线重做日志大小毕竟是有限的,当都写满了的时候,就面临着2个选择,第一个就是把以前在线重做日志从头擦除开始继续写,第二种就是把以前的在线重做

oracle中升级到12.1.0.2之后rman无法删除已经归档日志

客户一个数据库,架构是2地3中心,本地有primary和standby,远程还有一个standby. primary的rman archivelog deletion policy是ship to all standby 同城standby的rman archivelog deletion policy是backup 1 time,备份在同城standby上进行. 远程standby的rman archivelog deletion policy是applied on all standby.

【Oracle】 rman 删除归档日志的命令

   因为数据仓库上asm的磁盘空间不足,需要删除早期的归档日志,查看资料有以下两种方式: delete archivelog until time 'sysdate-N'; delete archivelog all completed before 'sysdate-N'; 这两个命令的差别在哪里呢? 使用list 命令来查看一下究竟... RMAN>  list archivelog until time 'sysdate-1'; using target database control