首先模拟数据文件丢失
- RMAN> shutdown immediate
- 数据库已关闭
- 数据库已卸装
- Oracle 实例已关闭
- RMAN> host;
- [oracle@linux dbs]$ rm -rf /u01/app/oracle/oradata/orcl/tb1.dbf
- [oracle@linux dbs]$ exit
- exit
- 主机命令完成
RMAN> shutdown immediate
数据库已关闭
数据库已卸装
Oracle 实例已关闭
RMAN> host;
[oracle@linux dbs]$ rm -rf /u01/app/oracle/oradata/orcl/tb1.dbf
[oracle@linux dbs]$ exit
exit
主机命令完成
启动数据库看见缺少数据文件
- RMAN> startup
- 已连接到目标数据库 (未启动)
- Oracle 实例已启动
- 数据库已装载
- MAN-00571: ===========================================================
- RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
- RMAN-00571: ===========================================================
- RMAN-03002: startup 命令 (在 10/12/2011 12:48:55 上) 失败
- ORA-01157: 无法标识/锁定数据文件 5 - 请参阅 DBWR 跟踪文件
- ORA-01110: 数据文件 5: '/u01/app/oracle/oradata/orcl/tb1.dbf'
RMAN> startup
已连接到目标数据库 (未启动)
Oracle 实例已启动
数据库已装载
MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: startup 命令 (在 10/12/2011 12:48:55 上) 失败
ORA-01157: 无法标识/锁定数据文件 5 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 5: '/u01/app/oracle/oradata/orcl/tb1.dbf'
这个时候又没有备份就先创建一个空的数据文件
- SQL> alter database create datafile '/u01/app/oracle/oradata/orcl/tb1.dbf';
- 数据库已更改。
SQL> alter database create datafile '/u01/app/oracle/oradata/orcl/tb1.dbf';
数据库已更改。
恢复数据文件
- RMAN> recover datafile 5;
- 启动 recover 于 12-10月-11
- 分配的通道: ORA_DISK_1
- 通道 ORA_DISK_1: sid=155 devtype=DISK
- 正在开始介质的恢复
- 存档日志线程 1 序列 2 已作为文件 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_2_79b4k73n_.arc 存在于磁盘上
- 存档日志线程 1 序列 3 已作为文件 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_3_79b4n27z_.arc 存在于磁盘上
- 存档日志线程 1 序列 4 已作为文件 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_4_79b4n36w_.arc 存在于磁盘上
- 存档日志线程 1 序列 5 已作为文件 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_5_79b4n9t7_.arc 存在于磁盘上
- 存档日志线程 1 序列 6 已作为文件 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_6_79b4nl3j_.arc 存在于磁盘上
- 存档日志线程 1 序列 7 已作为文件 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_7_79b4wygs_.arc 存在于磁盘上
- 存档日志线程 1 序列 8 已作为文件 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_8_79b5blv7_.arc 存在于磁盘上
- 存档日志线程 1 序列 9 已作为文件 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_9_79b5blx1_.arc 存在于磁盘上
- 存档日志线程 1 序列 10 已作为文件 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_10_79b5blqg_.arc 存在于磁盘上
- 存档日志文件名 =/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_2_79b4k73n_.arc 线程 =1 序列 =2
- 存档日志文件名 =/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_3_79b4n27z_.arc 线程 =1 序列 =3
- 存档日志文件名 =/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_4_79b4n36w_.arc 线程 =1 序列 =4
- 存档日志文件名 =/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_5_79b4n9t7_.arc 线程 =1 序列 =5
- 存档日志文件名 =/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_6_79b4nl3j_.arc 线程 =1 序列 =6
- 存档日志文件名 =/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_7_79b4wygs_.arc 线程 =1 序列 =7
- 存档日志文件名 =/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_8_79b5blv7_.arc 线程 =1 序列 =8
- 存档日志文件名 =/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_9_79b5blx1_.arc 线程 =1 序列 =9
- 存档日志文件名 =/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_10_79b5blqg_.arc 线程 =1 序列 =10
- 介质恢复完成, 用时: 00:00:03
- 完成 recover 于 12-10月-11
- RMAN> alter database open;
- 数据库已打开
RMAN> recover datafile 5;
启动 recover 于 12-10月-11
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=155 devtype=DISK
正在开始介质的恢复
存档日志线程 1 序列 2 已作为文件 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_2_79b4k73n_.arc 存在于磁盘上
存档日志线程 1 序列 3 已作为文件 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_3_79b4n27z_.arc 存在于磁盘上
存档日志线程 1 序列 4 已作为文件 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_4_79b4n36w_.arc 存在于磁盘上
存档日志线程 1 序列 5 已作为文件 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_5_79b4n9t7_.arc 存在于磁盘上
存档日志线程 1 序列 6 已作为文件 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_6_79b4nl3j_.arc 存在于磁盘上
存档日志线程 1 序列 7 已作为文件 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_7_79b4wygs_.arc 存在于磁盘上
存档日志线程 1 序列 8 已作为文件 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_8_79b5blv7_.arc 存在于磁盘上
存档日志线程 1 序列 9 已作为文件 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_9_79b5blx1_.arc 存在于磁盘上
存档日志线程 1 序列 10 已作为文件 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_10_79b5blqg_.arc 存在于磁盘上
存档日志文件名 =/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_2_79b4k73n_.arc 线程 =1 序列 =2
存档日志文件名 =/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_3_79b4n27z_.arc 线程 =1 序列 =3
存档日志文件名 =/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_4_79b4n36w_.arc 线程 =1 序列 =4
存档日志文件名 =/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_5_79b4n9t7_.arc 线程 =1 序列 =5
存档日志文件名 =/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_6_79b4nl3j_.arc 线程 =1 序列 =6
存档日志文件名 =/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_7_79b4wygs_.arc 线程 =1 序列 =7
存档日志文件名 =/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_8_79b5blv7_.arc 线程 =1 序列 =8
存档日志文件名 =/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_9_79b5blx1_.arc 线程 =1 序列 =9
存档日志文件名 =/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_10_79b5blqg_.arc 线程 =1 序列 =10
介质恢复完成, 用时: 00:00:03
完成 recover 于 12-10月-11
RMAN> alter database open;
数据库已打开
可以看见数据已经回来了
- SQL> conn u1/u1
- 已连接。
- SQL> select * from t;
- ID VALUE
- ---------- ----------
- 1 a