如果备份不可恢复,那么它就没有用处。 RMAN 提供了一种不需要还原数据库就能检查数据库还原能力的方法,并且为用户提供了几个检查选项。
1、restore preview命令
该命令可以查看RMAN 使用哪个备份集来执行特定的恢复。 该命令将列出还原所需的备份集的详细信息。
RMAN> restore database preview;
启动 restore 于 08-7月 -10
使用通道 ORA_DISK_1
备份集列表
===================
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
7 Full 987.05M DISK 00:01:40 08-7月 -10
BP 关键字: 7 状态: AVAILABLE 已压缩: NO 标记: TAG20100708T161959
段名:F:/BACKUP/BL_07LI9IPG_1_1.BAK
备份集 7 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
1 Full 1041819 08-7月 -10 D:/APP/ADMINISTRATOR/ORADATA/BL/SYSTEM01.DBF
2 Full 1041819 08-7月 -10 D:/APP/ADMINISTRATOR/ORADATA/BL/SYSAUX01.DBF
3 Full 1041819 08-7月 -10 D:/APP/ADMINISTRATOR/ORADATA/BL/UNDOTBS01.DBF
4 Full 1041819 08-7月 -10 D:/APP/ADMINISTRATOR/ORADATA/BL/USERS01.DBF
5 Full 1041819 08-7月 -10 D:/APP/ADMINISTRATOR/ORADATA/BL/BL01.DBF
db_unique_name 为 BL 的数据库的归档日志副本列表
=====================================================================
关键字 线程序列 S 时间下限
------- ---- ------- - ----------
8 1 12 A 08-7月 -10
名称: D:/ARCHIVELOG/BL_ARC0000000012_0723658881.0001
9 1 13 A 08-7月 -10
名称: D:/ARCHIVELOG/BL_ARC0000000013_0723658881.0001
介质恢复启动 SCN 是 1041819
恢复范围必须超出 SCN 1041819 才能清除数据文件模糊性
完成 restore 于 08-7月 -10
2、用verify 和 check logical参数的restore 命令
Restore 命令提供一些验证数据库可恢复和备份有效的选项。 首先,可以使用backup命令的validate参数使RMAN 检查备份,以确定数据库是可恢复的。 使用validate选项时,Oracle会检查用于恢复数据库的最新备份集以确定这个备份集是完整的,还会检查操作需要使用的所有数据文件副本和归档的重做日志备份集,并确定他们也是完整的。 此外,validate 选项会对备份集执行全面的验证操作,以确保这些备份的完整性。 验证操作的时间不会太长,并且这是确保数据库可恢复的一种方法。
RMAN> restore database validate;
启动 restore 于 08-7月 -10
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在开始验证数据文件备份集
通道 ORA_DISK_1: 正在读取备份片段 F:/BACKUP/BL_07LI9IPG_1_1.BAK
通道 ORA_DISK_1: 段句柄 = F:/BACKUP/BL_07LI9IPG_1_1.BAK 标记 = TAG20100708T161959
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 验证完成, 用时: 00:00:26
完成 restore 于 08-7月 -10
此外,使用restore 命令的check logical 参数能够更完全地检查最新备份集。 这个命令使RMAN检查数据库的备份,如果这些备份通过物理讹误检查,还要检查备份的数据和索引段中是否存在逻辑讹误。 如果发现逻辑讹误,Oracle 会采用下面的一种方法来响应错误:
(1) 如果设置了maxcorrupt参数,并且还原检查逻辑操作期间的讹误数没有超过这个参数值,RMAN就会在Oracle 的v$database_block_corruption 视图中填充讹误的数据块列表。
(2) 如果还原检查逻辑操作期间的讹误数超过了maxcorrupt参数值,操作就会终止。
在默认情况下,maxcorrupt 参数被设置为0,因此任何逻辑讹误都会导致检查操作的失败。 通过set 命令可以修改默认的maxcorrupt参数值,但只能在run代码块的范围内使用这条命令。 此外,maxcorrupt参数是为每个数据文件单独设置的,而不是为所有的数据文件设置。
RMAN> run
2> {
3> set maxcorrupt for datafile 1,2,3 to 10; -- 将1,2,3datafile 的maxcorrupt 设为10
4> restore database check logical validate;
5> }
正在执行命令: SET MAX CORRUPT
启动 restore 于 08-7月 -10
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在开始验证数据文件备份集
通道 ORA_DISK_1: 正在读取备份片段 F:/BACKUP/BL_07LI9IPG_1_1.BAK
通道 ORA_DISK_1: 段句柄 = F:/BACKUP/BL_07LI9IPG_1_1.BAK 标记 = TAG20100708T161959
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 验证完成, 用时: 00:00:27
完成 restore 于 08-7月 -10
3、使用validate backupset 命令
使用具有validate参数或者check logical 参数的restore 命令只能检查最新的备份集,如果我们要检查任意的备份集,就需要使用validate backupset命令。 使用这条命令前,必须首先确定要检查的备份集键(backup set key)。 每个备份集在生成时都会被指派一个称为备份集键的唯一标识符。
RMAN> list backupset ;
备份集列表
===================
BS 关键字 大小 设备类型占用时间 完成时间
------- ---------- ----------- ------------ ----------
1 52.15M DISK 00:00:04 07-7月 -10
BP 关键字: 1 状态: AVAILABLE 已压缩: NO 标记: TAG20100707T200948
段名:F:/BACKUP/BL_01LI7BSC_1_1.BAK
备份集 1 中的已存档日志列表
线程序列 低 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
备份集 2 中的数据文件列表
文件 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
根据上面查出来的backup set key,来验证:
RMAN> validate backupset 1;
启动 validate 于 08-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:05
完成 validate 于 08-7月 -10
RMAN> validate backupset 1 check logical;
启动 validate 于 08-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 于 08-7月 -10
oracle视频教程请关注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html
转载于:https://blog.51cto.com/19880614/1230545