change...keep (rman 长期备份)

长期备份是指根据change命令设置来决定何时把备份的文件标记为“废弃”; 


SQL> select * from v$version;

BANNER
-------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQL Release 11.2.0.1.0 - Production
CORE    11.2.0.1.0      Production
TNS for 32-bit Windows: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production


RMAN> list backup;

说明与资料档案库中的任何备份都不匹配

RMAN> backup datafile 6;
启动 backup 于 04-8月 -13
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00006 名称=E:\RM_TAB.DBF
通道 ORA_DISK_1: 正在启动段 1 于 04-8月 -13
通道 ORA_DISK_1: 已完成段 1 于 04-8月 -13
段句柄=D:\BACKUP\ORCL_159.BAK 标记=TAG20130804T113826 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:03
完成 backup 于 04-8月 -13

启动 Control File and SPFILE Autobackup 于 04-8月 -13
段 handle=F:\RMANBACKUP\CONTROLFILE\C-1318810635-20130804-03 comment=NONE
完成 Control File and SPFILE Autobackup 于 04-8月 -13



RMAN> list backup;
备份集列表
===================

BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
135     Full    5.85M      DISK        00:00:02     04-8月 -13
        BP 关键字: 134   状态: AVAILABLE  已压缩: NO  标记: TAG20130804T113826
段名:D:\BACKUP\ORCL_159.BAK
  备份集 135 中的数据文件列表
  文件 LV 类型 Ckp SCN    Ckp 时间   名称
  ---- -- ---- ---------- ---------- ----
  6       Full 33821001663 04-8月 -13 E:\RM_TAB.DBF


BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
136     Full    9.55M      DISK        00:00:03     04-8月 -13
        BP 关键字: 135   状态: AVAILABLE  已压缩: NO  标记: TAG20130804T113830
段名:F:\RMANBACKUP\CONTROLFILE\C-1318810635-20130804-03
  包含的 SPFILE: 修改时间: 04-8月 -13
  包括的控制文件: Ckp SCN: 33821001682   Ckp 时间: 04-8月 -13


RMAN> change backupset 135 keep forever;
使用通道 ORA_DISK_1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: KEEP 命令 (在 08/04/2013 11:41:41 上) 失败
RMAN-06522: 在没有恢复目录的情况下, 不支持 KEEP FOREVER 选项


说明该操作必须要在有恢复目录的情况下操作(因为用控制文件代替恢复目录的话,这些备份元数据会因为control_file_record_keep_time的值而被覆盖,所以保证不了这些策略);


RMAN> exit

恢复管理器完成。

C:\Documents and Settings\Administrator>rman target / catalog rm_user/rm_user;
恢复管理器: Release 11.2.0.1.0 - Production on 星期日 8月 4 11:42:04 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
连接到目标数据库: ORCL (DBID=1318810635)
连接到恢复目录数据库

RMAN> change backupset 135 keep forever;

正在启动全部恢复目录的 resync
完成全部 resync
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=34 设备类型=DISK
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: KEEP 命令 (在 08/04/2013 11:42:31 上) 失败
RMAN-06004: 恢复目录数据库发生 ORACLE 错误: RMAN-20215: backup set not found
RMAN-06159: 查找备份集时出错

RMAN> resync catalog;
正在启动全部恢复目录的 resync
完成全部 resync

RMAN> list backup;

备份集列表
===================
BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
2850    Full    5.85M      DISK        00:00:02     04-8月 -13
        BP 关键字: 2854   状态: AVAILABLE  已压缩: NO  标记: TAG20130804T113826
段名:D:\BACKUP\ORCL_159.BAK
  备份集 2850 中的数据文件列表
  文件 LV 类型 Ckp SCN    Ckp 时间   名称
  ---- -- ---- ---------- ---------- ----
  6       Full 33821001663 04-8月 -13 E:\RM_TAB.DBF


BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
2851    Full    9.55M      DISK        00:00:03     04-8月 -13
        BP 关键字: 2855   状态: AVAILABLE  已压缩: NO  标记: TAG20130804T113830
段名:F:\RMANBACKUP\CONTROLFILE\C-1318810635-20130804-03
  包含的 SPFILE: 修改时间: 04-8月 -13
  包括的控制文件: Ckp SCN: 33821001682   Ckp 时间: 04-8月 -13

这里看到控制文件和恢复目录记录的同一个备份集的“BS关键字”不同,不过这个不用处理,oracle内部应该有一个映射关系;


RMAN> change backupset 2850 keep forever;
使用通道 ORA_DISK_1
备份的保留属性被更改
备份永远不会废弃

备份集关键字=2850 RECID=135 STAMP=822569908


RMAN> backup  database tag='back_database';


启动 backup 于 04-8月 -13
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00001 名称=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
输入数据文件: 文件号=00003 名称=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
输入数据文件: 文件号=00004 名称=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
输入数据文件: 文件号=00002 名称=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
输入数据文件: 文件号=00005 名称=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF
输入数据文件: 文件号=00006 名称=E:\RM_TAB.DBF
输入数据文件: 文件号=00007 名称=E:\RMAN.DBF
通道 ORA_DISK_1: 正在启动段 1 于 04-8月 -13
通道 ORA_DISK_1: 已完成段 1 于 04-8月 -13
段句柄=D:\BACKUP\ORCL_165.BAK 标记=BACK_DATABASE 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:03:05
完成 backup 于 04-8月 -13


启动 Control File and SPFILE Autobackup 于 04-8月 -13
段 handle=F:\RMANBACKUP\CONTROLFILE\C-1318810635-20130804-06 comment=NONE
完成 Control File and SPFILE Autobackup 于 04-8月 -13



RMAN> list backup;

备份集列表
===================
BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
2850    Full    5.85M      DISK        00:00:02     04-8月 -13
        BP 关键字: 2854   状态: AVAILABLE  已压缩: NO  标记: TAG20130804T113826
段名:D:\BACKUP\ORCL_159.BAK
        保留: BACKUP_LOGS        直到: FOREVER
  备份集 2850 中的数据文件列表
  文件 LV 类型 Ckp SCN    Ckp 时间   名称
  ---- -- ---- ---------- ---------- ----
  6       Full 33821001663 04-8月 -13 E:\RM_TAB.DBF


BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
2851    Full    9.55M      DISK        00:00:03     04-8月 -13
        BP 关键字: 2855   状态: AVAILABLE  已压缩: NO  标记: TAG20130804T113830
段名:F:\RMANBACKUP\CONTROLFILE\C-1318810635-20130804-03
  包含的 SPFILE: 修改时间: 04-8月 -13
  包括的控制文件: Ckp SCN: 33821001682   Ckp 时间: 04-8月 -13

BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
3156    Full    1.53G      DISK        00:02:56     04-8月 -13
        BP 关键字: 3159   状态: AVAILABLE  已压缩: NO  标记: BACK_DATABASE
段名:D:\BACKUP\ORCL_165.BAK
  备份集 3156 中的数据文件列表
  文件 LV 类型 Ckp SCN    Ckp 时间   名称
  ---- -- ---- ---------- ---------- ----
  1       Full 33821002940 04-8月 -13 E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
  2       Full 33821002940 04-8月 -13 E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
  3       Full 33821002940 04-8月 -13 E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
  4       Full 33821002940 04-8月 -13 E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
  5       Full 33821002940 04-8月 -13 E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF
  6       Full 33821002940 04-8月 -13 E:\RM_TAB.DBF
  7       Full 33821002940 04-8月 -13 E:\RMAN.DBF

然后在不用catalog的情况操作(其实这里只是想试一下,看看在不用catalog的情况下操作后,在catalog里是否已经更新)

C:\Documents and Settings\Administrator>rman target /
恢复管理器: Release 11.2.0.1.0 - Production on 星期日 8月 4 12:24:17 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
连接到目标数据库: ORCL (DBID=1318810635)

因为控制文件中和恢复目录中的备份集对应关系是135-2850,所在在这里免除长期备份的操作用 135

RMAN> change backupset 135 nokeep;
使用通道 ORA_DISK_1
备份的保留属性被删除
备份集关键字=135 RECID=135 STAMP=822569908

RMAN> list backup;

备份集列表
===================
BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
135     Full    5.85M      DISK        00:00:02     04-8月 -13
        BP 关键字: 134   状态: AVAILABLE  已压缩: NO  标记: TAG20130804T113826
段名:D:\BACKUP\ORCL_159.BAK
  备份集 135 中的数据文件列表
  文件 LV 类型 Ckp SCN    Ckp 时间   名称
  ---- -- ---- ---------- ---------- ----
  6       Full 33821001663 04-8月 -13 E:\RM_TAB.DBF

BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
141     Full    1.53G      DISK        00:02:56     04-8月 -13
        BP 关键字: 140   状态: AVAILABLE  已压缩: NO  标记: BACK_DATABASE
段名:D:\BACKUP\ORCL_165.BAK
  备份集 141 中的数据文件列表
  文件 LV 类型 Ckp SCN    Ckp 时间   名称
  ---- -- ---- ---------- ---------- ----
  1       Full 33821002940 04-8月 -13 E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
  2       Full 33821002940 04-8月 -13 E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
  3       Full 33821002940 04-8月 -13 E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
  4       Full 33821002940 04-8月 -13 E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
  5       Full 33821002940 04-8月 -13 E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF
  6       Full 33821002940 04-8月 -13 E:\RM_TAB.DBF
  7       Full 33821002940 04-8月 -13 E:\RMAN.DBF

经过change...nokeep操作,说明135(在catalog中是2850)已经没有了”保留: BACKUP_LOGS        直到: FOREVER“ 这个信息;

来看看是否已标记为”废弃“

RMAN> report obsolete;

使用目标数据库控制文件替代恢复目录
RMAN 保留策略将应用于该命令
将 RMAN 保留策略设置为冗余 1
已废弃的备份和副本报表
类型                 关键字 完成时间           文件名/句柄
-------------------- ------ ------------------ --------------------
备份集               135    04-8月 -13
备份片段       134    04-8月 -13         D:\BACKUP\ORCL_159.BAK


OK ,已经标记为废弃备份集;这个时候我们到catalog下看看什么情况:


RMAN> list backup;

备份集列表
===================
BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
2850    Full    5.85M      DISK        00:00:02     04-8月 -13
        BP 关键字: 2854   状态: AVAILABLE  已压缩: NO  标记: TAG20130804T113826
段名:D:\BACKUP\ORCL_159.BAK
  备份集 2850 中的数据文件列表
  文件 LV 类型 Ckp SCN    Ckp 时间   名称
  ---- -- ---- ---------- ---------- ----
  6       Full 33821001663 04-8月 -13 E:\RM_TAB.DBF


BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
3156    Full    1.53G      DISK        00:02:56     04-8月 -13
        BP 关键字: 3159   状态: AVAILABLE  已压缩: NO  标记: BACK_DATABASE
段名:D:\BACKUP\ORCL_165.BAK
  备份集 3156 中的数据文件列表
  文件 LV 类型 Ckp SCN    Ckp 时间   名称
  ---- -- ---- ---------- ---------- ----
  1       Full 33821002940 04-8月 -13 E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
  2       Full 33821002940 04-8月 -13 E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
  3       Full 33821002940 04-8月 -13 E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
  4       Full 33821002940 04-8月 -13 E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
  5       Full 33821002940 04-8月 -13 E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF
  6       Full 33821002940 04-8月 -13 E:\RM_TAB.DBF
  7       Full 33821002940 04-8月 -13 E:\RMAN.DBF


RMAN> report obsolete;


RMAN 保留策略将应用于该命令
将 RMAN 保留策略设置为冗余 1
已废弃的备份和副本报表
类型                 关键字 完成时间           文件名/句柄
-------------------- ------ ------------------ --------------------
备份集               2850   04-8月 -13
备份片段       2854   04-8月 -13         D:\BACKUP\ORCL_159.BAK


说明跟无catalog里保持了同步,既然那么及时,那么我是不是有一个类似于”触发器“的东西在同步控制文件和恢复目录之间的信息呢?其实是当执行某些特定的操作例如backup 、delete等操作的时候,内部机制会去自动同步;


有一道ocp题考查此知识点

Q513. You performed the RMAN database backup having abackupset key number 231 with the KEEP FOREVER option. After some days, youwant to change the status of the database backup and you issued the followingcommand:


RMAN>CHANGE BACKUPSET 231 NOKEEP;


What is the implication of this command?

A. The backup is deleted.

B. The backup is marked unavailable.

C. The backup overrides the backup retention policy.

D. the backup becomes eligible  fordeletion according to the existing retention policy

 

Answer: D



-----------------------------------------------------------------------------------------------------------------------

博文所有内容均属原创,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!

Blog:    http://blog.csdn.net/perfect_db

Email:   p[email protected]

   QQ:   787266309


你可能感兴趣的:(rman,change...keep)