首先模拟数据库故障。
- SQL> select * from v$log;
- GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- -------------------
- 1 1 10 52428800 1 NO CURRENT 475533 2011-10-18 05:26:01
- 2 1 8 52428800 1 YES INACTIVE 475528 2011-10-18 05:25:54
- 3 1 9 52428800 1 YES INACTIVE 475531 2011-10-18 05:26:00
- SQL> select file_name from dba_data_files;
- FILE_NAME
- ------------------------------------------------------------
- /u01/app/oracle/oradata/orcl/users01.dbf
- /u01/app/oracle/oradata/orcl/sysaux01.dbf
- /u01/app/oracle/oradata/orcl/undotbs01.dbf
- /u01/app/oracle/oradata/orcl/system01.dbf
- /u01/app/oracle/oradata/orcl/tb1.dbf
- SQL> ! rm -rf /u01/app/oracle/oradata/orcl/tb1.dbf
- SQL> shutdown abort;
- ORACLE 例程已经关闭。
- SQL> startup mount
- ORACLE 例程已经启动。
- Total System Global Area 167772160 bytes
- Fixed Size 1266392 bytes
- Variable Size 88083752 bytes
- Database Buffers 75497472 bytes
- Redo Buffers 2924544 bytes
- 数据库装载完毕。
然后恢复
- [oracle@linux ~]$ rman target /
- 恢复管理器: Release 10.2.0.4.0 - Production on 星期二 10月 18 05:28:19 2011
- Copyright (c) 1982, 2007, Oracle. All rights reserved.
- 已连接到目标数据库: ORCL (DBID=1292118315, 未打开)
- RMAN> run {
- 2> set until sequence=9;
- 3> restore database;
- 4> recover database;
- 5> alter database open resetlogs; }
- 正在执行命令: SET until clause
- 使用目标数据库控制文件替代恢复目录
- 启动 restore 于 18-10月-11
- 分配的通道: ORA_DISK_1
- 通道 ORA_DISK_1: sid=155 devtype=DISK
- 通道 ORA_DISK_1: 正在开始恢复数据文件备份集
- 通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
- 正将数据文件00001还原到/u01/app/oracle/oradata/orcl/system01.dbf
- 正将数据文件00002还原到/u01/app/oracle/oradata/orcl/undotbs01.dbf
- 正将数据文件00003还原到/u01/app/oracle/oradata/orcl/sysaux01.dbf
- 正将数据文件00004还原到/u01/app/oracle/oradata/orcl/users01.dbf
- 正将数据文件00005还原到/u01/app/oracle/oradata/orcl/tb1.dbf
- 通道 ORA_DISK_1: 正在读取备份片段 /u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_10_18/o1_mf_nnndf_TAG20111018T045948_79s5t51d_.bkp
- 通道 ORA_DISK_1: 已还原备份片段 1
- 段句柄 = /u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_10_18/o1_mf_nnndf_TAG20111018T045948_79s5t51d_.bkp 标记 = TAG20111018T045948
- 通道 ORA_DISK_1: 还原完成, 用时: 00:00:25
- 完成 restore 于 18-10月-11
- 启动 recover 于 18-10月-11
- 使用通道 ORA_DISK_1
- 正在开始介质的恢复
- 存档日志线程 1 序列 8 已作为文件 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_18/o1_mf_1_8_79s5w7pt_.arc 存在于磁盘上
- 存档日志线程 1 序列 9 已作为文件 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_18/o1_mf_1_9_79s6h7gh_.arc 存在于磁盘上
- 存档日志线程 1 序列 1 已作为文件 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_18/o1_mf_1_1_79s71zhg_.arc 存在于磁盘上
- 存档日志线程 1 序列 2 已作为文件 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_18/o1_mf_1_2_79s7bt9q_.arc 存在于磁盘上
- 存档日志线程 1 序列 3 已作为文件 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_18/o1_mf_1_3_79s7bzmk_.arc 存在于磁盘上
- 存档日志线程 1 序列 4 已作为文件 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_18/o1_mf_1_4_79s7c0fv_.arc 存在于磁盘上
- 存档日志线程 1 序列 5 已作为文件 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_18/o1_mf_1_5_79s7c18t_.arc 存在于磁盘上
- 存档日志线程 1 序列 6 已作为文件 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_18/o1_mf_1_6_79s7c1w0_.arc 存在于磁盘上
- 存档日志线程 1 序列 7 已作为文件 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_18/o1_mf_1_7_79s7c2oc_.arc 存在于磁盘上
- 存档日志线程 1 序列 8 已作为文件 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_18/o1_mf_1_8_79s7c8no_.arc 存在于磁盘上
- 存档日志文件名 =/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_18/o1_mf_1_8_79s5w7pt_.arc 线程 =1 序列 =8
- 存档日志文件名 =/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_18/o1_mf_1_9_79s6h7gh_.arc 线程 =1 序列 =9
- 存档日志文件名 =/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_18/o1_mf_1_1_79s71zhg_.arc 线程 =1 序列 =1
- 存档日志文件名 =/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_18/o1_mf_1_1_79s7bnv9_.arc 线程 =1 序列 =1
- 存档日志文件名 =/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_18/o1_mf_1_2_79s7bt9q_.arc 线程 =1 序列 =2
- 存档日志文件名 =/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_18/o1_mf_1_3_79s7bzmk_.arc 线程 =1 序列 =3
- 存档日志文件名 =/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_18/o1_mf_1_4_79s7c0fv_.arc 线程 =1 序列 =4
- 存档日志文件名 =/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_18/o1_mf_1_5_79s7c18t_.arc 线程 =1 序列 =5
- 存档日志文件名 =/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_18/o1_mf_1_6_79s7c1w0_.arc 线程 =1 序列 =6
- 存档日志文件名 =/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_18/o1_mf_1_7_79s7c2oc_.arc 线程 =1 序列 =7
- 存档日志文件名 =/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_18/o1_mf_1_8_79s7c8no_.arc 线程 =1 序列 =8
- 介质恢复完成, 用时: 00:00:04
- 完成 recover 于 18-10月-11
最后可以看见数据库已经打开。
- SQL> select status from v$instance;
- STATUS