RMAN维护
使用rman管理备份时,有可能会遇到这样的情况:控制文件或恢复目录中列出的备份集或备份片并没有物理的存在于备份介质上。此时,我们需要关心得到所有备份集的一个状态。
crosscheck
使用crosscheck交叉校验rman备份。
RMAN> crosscheck backup/backupset;
使用控制文件的,备份片的状态可以通过查看:v$backup_set 和v$datafile_copy中status查看每个备份集的状态。
若使用恢复目录,rc_backup_set 和rc_datafile_copy中。
V(available):可用,rman认定该项备份存在于备份介质上
E(expired):不可用,这个备份存在于控制文件或者恢复目录,但是没有存在于物理介质上。
使用crosscheck命令,必须连接目标数据库,而不用连接到恢复目录。
此外,还可以使用crosscheck命令交叉校验数据文件、表空间备份、控制文件备份以及归档日志文件等。
crosscheck backup of datafile 1;
crosscheck backup of tablespace users;
crosscheck backup of spfile;
crosscheck backup device type sbt;
crosscheck archivelog all ;
crosscheck archivelog like 'ARC001.log';
crosscheck archivelog from sequence 100;
--使用cross copy可以校验副本。
crosscheck copy of datafile 5;
crosscheck copy of datafile 'u01/orace/product/oradata/orcl/user01.dbf';
使用validate backup命令验证rman备份
validate backupset 命令检查rman备份的可用性。当用rman完成备份时,可以用 validate check logical 命令执行数据库的验证。因此validate可以用来检查特定的备份集或者在闪回恢复区内的备份集。validate默认值检查物理损坏,若联通逻辑损坏,则需要加上:check logical 。要使用validate,需先用list backup 命令获得备份集的信息。
RMAN> list backup summary;
备份列表
===============
KEY TY LV S 设备类型 完成时间 段数 副本数 压缩标记
------- -- -- - ----------- ---------- ------- ------- ---------- ---
53 B F A DISK 26-5月 -13 1 1 NO TAG20130526T182700
54 B F A DISK 26-5月 -13 1 1 NO TAG20130526T182702
55 B 1 A DISK 26-5月 -13 1 1 NO INCRE_UPDATE
56 B 1 A DISK 26-5月 -13 1 1 NO INCRE_UPDATE
57 B F A DISK 26-5月 -13 1 1 NO TAG20130526T182952
58 B F A DISK 26-5月 -13 1 1 NO TAG20130526T182954
KEY 每个备份集唯一的值,
TY:B代表备份集,P代表代理副本。
LV:完整的数据库备份用F,归档重做日志 A,如果是增量备份则是 0 或者1 (分别代表增量等级)。
S:指定备状态,A可用,U不可用,X 过期
得到了备份集信息后,
RMAN> validate backupset 53;
启动 validate 于 26-5月 -13
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=136 设备类型=DISK
分配的通道: ORA_DISK_2
通道 ORA_DISK_2: SID=192 设备类型=DISK
通道 ORA_DISK_1: 正在开始验证数据文件备份集
通道 ORA_DISK_1: 正在读取备份片段 D:\APP\ADMIN\FLASH_RECOVERY_AREA\ORCL\BACKUPSE
T\2013_05_26\O1_MF_NCNNF_TAG20130526T182700_8T3RVOQ7_.BKP
通道 ORA_DISK_1: 段句柄 = D:\APP\ADMIN\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2013_0
5_26\O1_MF_NCNNF_TAG20130526T182700_8T3RVOQ7_.BKP 标记 = TAG20130526T182700
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 验证完成, 用时: 00:00:02
完成 validate 于 26-5月 -13
使用restore ...validate命令
可以使用restore..validate命令检查某个对象 是否在备份集中。
RMAN> restore tablespace users validate;
启动 restore 于 26-5月 -13
使用通道 ORA_DISK_1
使用通道 ORA_DISK_2
通道 ORA_DISK_1: 正在扫描数据文件副本 D:\APP\ADMIN\FLASH_RECOVERY_AREA\ORCL\DATA
FILE\O1_MF_USERS_8T3RVHB2_.DBF
完成 restore 于 26-5月 -13
使用restore ...preview命令
为了能一次性成功复原数据库,使用restore ...preview 它能确定某个特定的复原动作所需要的备份文件。
RMAN> restore tablespace users preview;
确定恢复必需的文件
发生控制文件或者数据文件丢失之后,应及时查看恢复数据,需要恢复那些文件。
SQL> select file#,error,online_status,change#,time from v$recover_file;
也可以关联v$datafile,v$tablespace找出需要恢复的文件的跟多细节。
change命令
change命令允许用户修改备份的状态。我们可能会遇到备份介质设备在某个时间无效的情况。在这种情况下,可以使用change来指示这个备份介质上的备份时不可用的。修复之后,可以更改为可用状态。
RMAN> change backup of database tag='incre_update' unavailable;
RMAN> change backupset 53 unavailable;
delete命令
配置的备份冗余保留策略不会删除rman目录中的备份,而只是将这些备份标记为obsolete,与crosscheck一样,将过时的备份和副本标记为 expired。不管是obsolete还是expired状态,都不会删除这些备份和副本。delete命令可以删除基于保留准则被标记为过时的任何副本。
RMAN> delete expired backup;
RMAN> delete obsolete;
执行delete 删除备份时,rman会请求用户确认,若想跳过确定环节,则可以使用delete命令的noprompt选项,此选项在delete应用在脚本时就灰常有用。
RMAN> delete nopromot obsolete;
------------------------------------
整理自<oracle database 11g rman备份与恢复>,<oracle database 11g 数据库管理艺术>