一.保护现有环境:
RMAN>run{
2>allocatechannelch1typediskformat'/data/backupset/primary_%U';
3>backupdatabase;
4>}
二.在备库上做备份:
RMAN>run{
2>allocatechannelc1devicetypediskformat'/data/backupstd/stdbackup_%U';
3>backupdatabase;
4>}
三.在主库模拟user表空间的数据文件损坏。
rm/u01/app/oracle/oradataorcl/orcl/users01.dbf
SQL>connscott/tiger
SQL>select*fromemp;
select*fromemp
*
ERRORatline1:
ORA-01116:errorinopeningdatabasefile4
ORA-01110:datafile4:'/u01/app/oracle/oradataorcl/orcl/users01.dbf'
ORA-27041:unabletoopenfile
Linux-x86_64Error:2:Nosuchfileordirectory
Additionalinformation:3
说明故障已发生;
四.关闭实例,做介质恢复。
shutdownabort;
ORACLEinstanceshutdown.
传递备库的备份至主库
scp/data/backupstd/*10.10.10.222:/tmp/rmanbackup
oracle@10.10.10.222'spassword:
stdbackup_09os7mlt_1_1100%1148MB10.7MB/s01:47
stdbackup_0aos7mn0_1_1100%9632KB9.4MB/s00:01
改变之前的备库目录使rman不能用之前的备份区恢复
mvbackupset/backupset1
rmantarget/
restoretablespaceusers;
.............
RMAN-06026:sometargetsnotfound-abortingrestore
RMAN-06023:nobackuporcopyofdatafile4foundtorestore
说明没有可用的备份;
使用备库的备份文件去恢复;
五.恢复数据文件使用备库的备份;
注册之前传过来的备份片;
RMAN>catalogstartwith'/tmp/rmanbackup'
RMAN>restoretablespaceusers;
........
channelORA_DISK_1:piecehandle=/tmp/rmanbackup/stdbackup_09os7mlt_1_1tag=TAG1223T095821
channelORA_DISK_1:restoredbackuppiece1
channelORA_DISK_1:restorecomplete,elapsedtime:00:00:01
Finishedrestoreat23-DEC-13
RMAN>recovertablespaceusers;
Startingrecoverat23-DEC-13
usingchannelORA_DISK_1
startingmediarecovery
archivedlogforthread1withsequence40isalreadyondiskasfile/data/logarchive01/1_40_834606638.arc
mediarecoverycomplete,elapsedtime:00:00:01
Finishedrecoverat23-DEC-13
打开数据库
RMAN>sql'alterdatabaseopen';
sqlstatement:alterdatabaseopen
此时数据库已恢复;
SQL>select*fromemp;
EMPNOENAMEJOBMGRHIREDATESALCOMM
--------------------------------------------------------------------
DEPTNO
----------
7369SMITHCLERK790217-DEC-80800
业务也已恢复。