暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

RMAN的备份保留策略

原创 eygle 2019-11-20
3000

使用RMAN可以对备份集进行管理,其中的一个重要特性是备份保留策略的设置,备份保留策略是为满足备份需求而设置的备份保留原则。
备份保留策略可以基于冗余(Redundancy)或者基于恢复窗口(Recovery Window)。对于基于冗余的策略,可以定义一个数字n用于标示RMAN为每个文件保留至少n个不同的备份;在基于恢复窗口的保留策略中,需要定义一个时间长度(例如,一周或一个月),RMAN会保留足够的备份,以便在定义的时间长度内可以进行基于任何时间点的恢复。
当备份不再需要时会被标记为废弃(obsolete),但是废弃的备份不会自动删除,只是在RMAN目录中标记为丢弃,其状态依旧为available,要查看标记为丢弃的备份可以使用report obsolete命令,只有使用delete obsolete才会真正删除丢弃的备份。
通过在RMAN中执行show all命令可以看到很多参数配置,其中第一项就是冗余策略设置:

RMAN> show all;

RMAN 配置参数为:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
………
缺省的冗余个数设置为1,以下输出标识了一个全备份和归档备份为废弃:
RMAN> report obsolete;
RMAN 保留策略将应用于该命令
将 RMAN 保留策略设置为冗余 1
已废弃的备份和副本报表
类型                 关键字 完成时间           文件名/句柄
-------------------- ------ ------------------ --------------------
备份集               15     02-3月 -07
备份段       15     02-3月 -07         D:\BACKUP\EYGLEARCH_EYGLE_20070302_17
备份集               17     02-3月 -07
备份段       17     02-3月 -07         D:\BACKUP\EYGLEFULL_EYGLE_20070302_19

如果REDUNDANCY设置为2,则这两个备份集都将被保留:

RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 2;

新的 RMAN 配置参数:
CONFIGURE RETENTION POLICY TO REDUNDANCY 2;
已成功存储新的 RMAN 配置参数

RMAN> report obsolete;
RMAN 保留策略将应用于该命令
将 RMAN 保留策略设置为冗余 2
未找到已废弃的备份

要删除过期备份可以使用delete obsolete命令(nopromt指定无需确认立即删除):

RMAN> delete noprompt obsolete;

RMAN 保留策略将应用于该命令
将 RMAN 保留策略设置为冗余 1
使用通道 ORA_DISK_1
删除以下已废弃的备份和副本:
类型                 关键字 完成时间           文件名/句柄
-------------------- ------ ------------------ --------------------
备份集               15     02-3月 -07
备份段       15     02-3月 -07         D:\BACKUP\EYGLEARCH_EYGLE_20070302_17
备份集               17     02-3月 -07
备份段       17     02-3月 -07         D:\BACKUP\EYGLEFULL_EYGLE_20070302_19
已删除备份段
备份段 handle=D:\BACKUP\EYGLEARCH_EYGLE_20070302_17 recid=15 stamp=616160448
已删除备份段
备份段 handle=D:\BACKUP\EYGLEFULL_EYGLE_20070302_19 recid=17 stamp=616160536
2 对象已删除

如果要长期保留备份集,使之不受保留策略影响,则可以使用RMAN的backup … keep选项,keep until time可以指定备份集保留的时间,keep forever可以指定永远保留备份集。
以下命令用于备份指定的表空间,保留时间为365天,注意备份时会提示备份集的过期时间,在备份完成之后,相关的归档日志、控制文件、参数文件会同时备份下来:

E:\>rman target /

Recovery Manager: Release 11.2.0.2.0 - Production on Mon Jan 31 16:05:11 2011
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

connected to target database: EYGLEE (DBID=3941320050)
RMAN> backup tablespace users format 'E:\backup\users%U.bk'
2> keep until time 'sysdate + 365';

Starting backup at 31-JAN-11
current log archived

using channel ORA_DISK_1
backup will be obsolete on date 31-JAN-12
archived logs required to recover from this backup will be backed up
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00004 name=E:\ORADATA\EYGLEE\O1_MF_USERS_6BD0BQBH_.DBF
channel ORA_DISK_1: starting piece 1 at 31-JAN-11
channel ORA_DISK_1: finished piece 1 at 31-JAN-11
piece handle=E:\BACKUP\USERS0IM3GKGQ_1_1.BK tag=TAG20110131T160857 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:15

using channel ORA_DISK_1
backup will be obsolete on date 31-JAN-12
archived logs required to recover from this backup will be backed up
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current SPFILE in backup set
channel ORA_DISK_1: starting piece 1 at 31-JAN-11
channel ORA_DISK_1: finished piece 1 at 31-JAN-11
piece handle=E:\BACKUP\USERS0JM3GKHA_1_1.BK tag=TAG20110131T160857 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01

current log archived
using channel ORA_DISK_1
backup will be obsolete on date 31-JAN-12
archived logs required to recover from this backup will be backed up
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=357 RECID=151 STAMP=741888557
channel ORA_DISK_1: starting piece 1 at 31-JAN-11
channel ORA_DISK_1: finished piece 1 at 31-JAN-11
piece handle=E:\BACKUP\USERS0KM3GKHE_1_1.BK tag=TAG20110131T160857 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01

using channel ORA_DISK_1
backup will be obsolete on date 31-JAN-12
archived logs required to recover from this backup will be backed up
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current control file in backup set
channel ORA_DISK_1: starting piece 1 at 31-JAN-11
channel ORA_DISK_1: finished piece 1 at 31-JAN-11
piece handle=E:\BACKUP\USERS0LM3GKHG_1_1.BK tag=TAG20110131T160857 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 31-JAN-11

注意,使用keep forever命令需要存在恢复目录:

RMAN> backup tablespace system format 'E:\backup\system%U.bk'
2> keep forever;

Starting backup at 31-JAN-11
current log archived

using channel ORA_DISK_1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of backup command at 01/31/2011 16:13:52
RMAN-06522: KEEP FOREVER option is not supported without the recovery catalog
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论