RMAN 恢复丢失的数据文件
一、系統数据文件丢失(system、undo)
前提是一定要有备份,必须要关闭数据库,启动到mount阶段才能开始恢复
试验:
1.用RMAN备份数据库:bakcup database;
2.删除system或undo数据文件:rm system01.dbf
3.RMAN还原数据库
RMAN> restore database;
Starting restore at 04-MAY-18using target database control file instead of recovery catalogallocated channel: ORA_DISK_1channel ORA_DISK_1: SID=7 device type=DISK
channel ORA_DISK_1: starting datafile backup set restorechannel ORA_DISK_1: specifying datafile(s) to restore from backup setchannel ORA_DISK_1: restoring datafile 00001 to /home/oracle/app/oracle/oradata/orcl/system01.dbfchannel ORA_DISK_1: restoring datafile 00002 to /home/oracle/app/oracle/oradata/orcl/sysaux01.dbfchannel ORA_DISK_1: restoring datafile 00003 to /home/oracle/app/oracle/oradata/orcl/undotbs01.dbfchannel ORA_DISK_1: restoring datafile 00004 to /home/oracle/app/oracle/oradata/orcl/users01.dbfchannel ORA_DISK_1: restoring datafile 00005 to /home/oracle/app/oracle/oradata/orcl/example01.dbfchannel ORA_DISK_1: reading from backup piece /home/oracle/app/oracle/fast_recovery_area/ORCL/backupset/2018_05_04/o1_mf_nnndf_TAG20180504T154139_fgr3on7k_.bkpchannel ORA_DISK_1: piece handle=/home/oracle/app/oracle/fast_recovery_area/ORCL/backupset/2018_05_04/o1_mf_nnndf_TAG20180504T154139_fgr3on7k_.bkp tag=TAG20180504T154139channel ORA_DISK_1: restored backup piece 1channel ORA_DISK_1: restore complete, elapsed time: 00:00:25Finished restore at 04-MAY-18
4.恢复数据库
RMAN> recover database;
Starting recover at 04-MAY-18using channel ORA_DISK_1starting media recoveryarchived log for thread 1 with sequence 11 is already on disk as file /home/oracle/app/oracle/fast_recovery_area/ORCL/archivelog/2018_05_04/o1_mf_1_11_fgr80gc0_.arcarchived log for thread 1 with sequence 12 is already on disk as file /home/oracle/app/oracle/fast_recovery_area/ORCL/archivelog/2018_05_04/o1_mf_1_12_fgr80gf1_.arcarchived log for thread 1 with sequence 1 is already on disk as file /home/oracle/app/oracle/fast_recovery_area/ORCL/archivelog/2018_05_04/o1_mf_1_1_fgrsbcb3_.arcarchived log for thread 1 with sequence 2 is already on disk as file /home/oracle/app/oracle/fast_recovery_area/ORCL/archivelog/2018_05_04/o1_mf_1_2_fgrtn1lm_.arcarchived log file name=/home/oracle/app/oracle/fast_recovery_area/ORCL/archivelog/2018_05_04/o1_mf_1_11_fgr80gc0_.arc thread=1 sequence=11archived log file name=/home/oracle/app/oracle/fast_recovery_area/ORCL/archivelog/2018_05_04/o1_mf_1_12_fgr80gf1_.arc thread=1 sequence=12archived log file name=/home/oracle/app/oracle/fast_recovery_area/ORCL/archivelog/2018_05_04/o1_mf_1_1_fgrsbcb3_.arc thread=1 sequence=1media recovery complete, elapsed time: 00:00:02Finished recover at 04-MAY-18
5.修改数据库位open状态
alter database open;
至此,丢失文件已经恢复回来。
二、普通数据文件丢失(users)
前提是必须要做过备份,在数据库运行中即可恢复,无需停机恢复
1.用RMAN备份数据库:bakcup database;
2.删除users或其他数据文件:rm users01.dbf
3.RMAN还原
RMAN> run {2> sql 'alter tablespace users offline immediate';3> restore tablespace users;4> recover tablespace users;5> sql 'alter tablespace users online';6> }sql statement: alter tablespace users offline immediateStarting restore at 04-MAY-18using channel ORA_DISK_1channel ORA_DISK_1: starting datafile backup set restorechannel ORA_DISK_1: specifying datafile(s) to restore from backup setchannel ORA_DISK_1: restoring datafile 00004 to /home/oracle/app/oracle/oradata/orcl/users01.dbfchannel ORA_DISK_1: reading from backup piece /home/oracle/app/oracle/fast_recovery_area/ORCL/backupset/2018_05_04/o1_mf_nnndf_TAG20180504T222659_fgrvfn6s_.bkpchannel ORA_DISK_1: piece handle=/home/oracle/app/oracle/fast_recovery_area/ORCL/backupset/2018_05_04/o1_mf_nnndf_TAG20180504T222659_fgrvfn6s_.bkp tag=TAG20180504T222659channel ORA_DISK_1: restored backup piece 1channel ORA_DISK_1: restore complete, elapsed time: 00:00:01Finished restore at 04-MAY-18Starting recover at 04-MAY-18using channel ORA_DISK_1starting media recoverymedia recovery complete, elapsed time: 00:00:00Finished recover at 04-MAY-18sql statement: alter tablespace users online
至此,被删除的users表空间对应的数据文件已经恢复。