现在的位置: 首页 > 综合 > 正文

备份恢复15—— RMAN 维护和list,report命令

2013年12月23日 ⁄ 综合 ⁄ 共 6456字 ⁄ 字号 评论关闭

原文转自:http://blog.csdn.net/tianlesoftware/article/details/5728097

这篇资料主要讲到了如下内容:

1. Rman 的维护

2. 恢复目录的维护

3. 备份恢复目录

4. RMAN 存储脚本

5. 删除数据库

 

一. RMAN 的维护

1.1 交叉效验RMAN 备份

RMAN目录和物理备份目的地不同步的情况下,我们可以使用crosscheck命令来效验控制文件或恢复目录中的RMAN信息是否与备份介质上的实际物理备份集片相同。

使用crosscheck 命令时,我们关心每个备份集或者副本的状态。 如果使用控制文件,用于备份集片的v$backup_set 视图和用于副本的v$databfile_copy 视图中的status列列出了每个备份集或副本的状态码;如果使用恢复目录,则在备份集片的RC_BACKUP_SET和副本的RC_DATAFILE_COPY中列出了每个备份集或副本的状态码。 在不同的备份状态码中,我们关心以下两种状态:

(1)AAvailable:可用)RMAN 认定该项存在于备份介质上

(2)XExpired:不可用):这个备份集片或副本上存储的RMAN目录(即控制文件或恢复目录)中,但是并没有物理存在于备份介质上。

使用crosscheck 命令的目的是将RMAN目录的状态设置为AVAILABLE或者EXPIRED 执行crosscheck时,RMAN检查目录中列出的每个备份集或副本并且判断他们是否存在与备份介质上。 如果备份集或副本不存在与备份介质上,它就会被标记为expired, 并且不能用于任何还原操作;如果备份集或副本存在与备份介质上,它就会维持available状态。 如果以前被标记为expired 的备份集或副本再次存在于备份介质上,crosscheck 命令就会将它标记回available

RMAN> crosscheck backup;

使用目标数据库控制文件替代恢复目录

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: SID=25 设备类型=DISK

交叉校验备份片段找到为 'AVAILABLE'

备份片段句柄=F:/BACKUP/BL_01LI7BSC_1_1.BAK RECID=1 STAMP=723758988

交叉校验备份片段找到为 'AVAILABLE'

备份片段句柄=F:/BACKUP/BL_02LI7BSK_1_1.BAK RECID=2 STAMP=723758997

交叉校验备份片段找到为 'AVAILABLE'

备份片段句柄=F:/BACKUP/BL_03LI7BVK_1_1.BAK RECID=3 STAMP=723759093

可以交叉效验数据文件备份,表空间备份,控制文件备份以及服务器参数文件备份。此外,可以通过识别与备份相关联的标记来选择要交叉效验和特定的备份。 基于使用的设备或者基于一个时间周期,我们甚至可以交叉效验所有的备份。 如:

Crosscheck backup of datafile 1;

Crosscheck backup of tablespace users;

Crosscheck backup of controlfile;

Crosscheck backup of spfile;

Crosscheck backup tag='TEST';

Crosscheck backup completed after 'sysdate-2';

Crosscheck backup completed between 'sysdate-5' and 'sysdate-2';

Crosscheck backup device type disk;

交叉验证归档日志示例:

RMAN> crosscheck archivelog all;

使用目标数据库控制文件替代恢复目录

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: SID=24 设备类型=DISK

对归档日志的验证成功

归档日志文件名=D:/ARCHIVELOG/BL_ARC0000000005_0723658881.0001 RECID=1 STAMP=723756640

对归档日志的验证成功

归档日志文件名=D:/ARCHIVELOG/BL_ARC0000000006_0723658881.0001 RECID=2 STAMP=723758988

对归档日志的验证成功

归档日志文件名=D:/ARCHIVELOG/BL_ARC0000000007_0723658881.0001 RECID=3 STAMP=723759092

我们可以基于一个号码或标准(包括时间,具体的或指定范围的SCN或日志序列号)来交叉效验归档的重做日志备份,甚至还可以使用like参数与通配符来交叉效验特定的归档日志备份。 如:

Crosscheck archivelog like 'ARC001.log';

Crosscheck archivelog 'D:/archivelog/arc023.log';

Crosscheck archivelog like '%ARC00012.LOG';

Crosscheck archivelog from time "to_date('2010-7-10','yyyy-mm-dd')";

Crosscheck archivelog until time "to_date('2010-7-10','yyyy-mm-dd')";

Crosscheck archivelog from sequence 12;

Crosscheck archivelog until sequence 522;

使用crosscheck copy命令还可以交叉效验副本。 包括数据文件副本,控制文件副本,归档重做日志副本以及磁盘上的归档的重做日志。 如:

Crosscheck copy of datafile 5;

Crosscheck datafilecopy 'D:/APP/ADMINISTRATOR/ORADATA/BL/BL01.DBF';

1.2  RMAN 备份的验证

 RMAN 提供的validate命令允许查看给定的备份集和进行验证以确保这个备份集能够被还原。注意,validate 命令必须要获得主键ID。 这个可以用list backup summary命令获取。

RMAN> list backup summary;

备份列表

===============

关键字     TY LV S 设备类型 完成时间   段数 副本数 压缩标记

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

      B  A  A DISK        07-7月 -10 1       1       NO         TAG20100707T200948

2       B  F  A DISK        07-7月 -10 1       1       NO         TAG20100707T200956

      B  A  A DISK        07-7月 -10 1       1       NO         TAG20100707T201132

RMAN> validate backupset 1;

启动 validate 于 10-7月 -10

使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在开始验证归档日志备份集

通道 ORA_DISK_1: 正在读取备份片段 F:/BACKUP/BL_01LI7BSC_1_1.BAK

通道 ORA_DISK_1: 段句柄 = F:/BACKUP/BL_01LI7BSC_1_1.BAK 标记 = TAG20100707T200948

通道 ORA_DISK_1: 已还原备份片段 1

通道 ORA_DISK_1: 验证完成用时: 00:00:03

完成 validate 于 10-7月 -10

1.3 备份保存策略

保存策略(retention policy)是管理备份和副本以及指定他们在备份介质上保存时间的一种方法。 我们可以定义两种基本的保存策略: 恢复窗口保存策略recovery window backup retention policy) 和 备份冗余备份保存策略backup redundancy backup retention policy)。

每个冗余策略将一直保持知道被修改或者删除(或者直到使用create controlfile命令重新构建控制文件的时候)。 两个冗余策略是相互排斥的。此外,即使使用了冗余策略,也只能在使用带obsolete参数的delete命令的时候才能删除物理备份片。

1.3.1 恢复窗口备份保存策略

这种保存策略是基于想要数据库恢复到的最近日期定制的。 如:

Configure retention policy to recovery window 7 days;

在这个示例中,我们保存近7天的备份是有效的,超过7天的备份会被丢弃。

1.3.2 备份冗余备份保存策略

这种备份策略RMAN 会从最新备份开始保留n个数据库备份。 如:

Configure retention policy to redundancy 3;

这个示例中,我们保存最后3份有效的备份。

1.3.3 保存策略的维护

当一个给定的备份或者副本由于备份保存策略的标准而被丢弃时,RMAN 不会自动删除这个备份或副本,而只是标记为OBSOLETE.  我们可以使用 report obsolete 命令查看被RMAN 标记为obsolete 的备份。

RMAN> report obsolete;

RMAN 保留策略将应用于该命令

将 RMAN 保留策略设置为冗余 1

已废弃的备份和副本报表

类型                 关键字 完成时间           文件名/句柄

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

存档日志          1      07-7月 -10         D:/ARCHIVELOG/BL_ARC0000000005_0723658881.0001

存档日志          2      07-7月 -10         D:/ARCHIVELOG/BL_ARC0000000006_0723658881.0001

备份集               1      07-7月 -10

备份片段       1      07-7月 -10         F:/BACKUP/BL_01LI7BSC_1_1.BAK

当然,我们也可以使用带有keep参数的change 命令修改需要保留的已经被丢弃备份的状态。 使用这个命令时,其状态被修改的备份或副本被认为是一个长期备份(long-term backup),并且不受相应的保存策略的影响。

可以使用change命令将一个备份修改为永久备份,也可以为这个备份或副本定义丢弃的日志。此外,还可以定义与这个备份关联的所有日志都应当被保留,以保证总是能将该备份恢复到当前时间。 我们还可以使用change nokeep命令来手工丢弃一个备份。示例:

RMAN> list backup;

备份集列表

===================

BS 关键字  大小       设备类型占用时间 完成时间

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

      52.15M     DISK        00:00:04     07-7月 -10

        BP 关键字: 1   状态: AVAILABLE  已压缩: NO  标记: TAG20100707T200948

段名:F:/BACKUP/BL_01LI7BSC_1_1.BAK

  备份集 中的已存档日志列表

  线程序列     低 SCN    时间下限   下一个 SCN   下一次

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

  1    5       986340     06-7月 -10 1006590    07-7月 -10

  1    6       1006590    07-7月 -10 1008501    07-7月 -10

BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间

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

2       Full    974.46M    DISK        00:01:33     07-7月 -10

        BP 关键字: 2   状态: AVAILABLE  已压缩: NO  标记: TAG20100707T200956

段名:F:/BACKUP/BL_02LI7BSK_1_1.BAK

  备份集 中的数据文件列表

  文件 LV 类型 Ckp SCN    Ckp 时间   名称

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

  1       Full 1008510    07-7月 -10 D:/APP/ADMINISTRATOR/ORADATA/BL/SYSTEM01.DBF

  2       Full 1008510    07-7月 -10 D:/APP/ADMINISTRATOR/ORADATA/BL/SYSAUX01.DBF

  3       Full 1008510    07-7月 -10 D:/APP/ADMINISTRATOR/ORADATA/BL/UNDOTBS01.DBF

  4       Full 1008510    07-7月 -10 D:/APP/ADMINISTRATOR/ORADATA/BL/USERS01.DBF

  5       Full 1008510    07-7月 -10

修改一个备份或副本时,必须引用与这个备份关联的备份集关键字。 

另外,keep forever 选项有两个重要的限制:

(1)只有在使用恢复目录时,才可以使用该选项

(2)如果使用FRA,则不能使用该选项

修改备份为永久保存并将以及该备份的相关的日志保存下来,保证总能将备份恢复到当前时间点
    change backupset 31 keep forever logs;
设置备份丢弃的新日期,将备份在多保存天,天后将删除
    change backupset 32 keep until time 'sysdata + 7' logs;

检查完报告后,可以使用带有obsolete 参数的delete 命令指示Oracle 删除要丢弃的备份,如:

Delete obsolete;

如果要使一个备份不受所选冗余策略的影响,可以使用backup命令的keep 参数来为这个备份指定另一个保存标准。 如:

Backup database keep forever;

Backup database keep until time "to_date('2010-7-10','yyyy-mm-dd')";

Backup database keep 5 days;

1.4 change 命令

抱歉!评论已关闭.