1、创建测试表、归档日志并关闭数据库:
SQL> create table t(a int) tablespace xue;
SQL> insert into t values(1);
SQL> commit;
SQL> alter system switch logfile;
SQL> shutdown immediate[@more@]
2、模拟数据文件丢失:删除两个非系统数据文件:
SQL> host del d:oracleoradataxuexue01.dbf
SQL> host del d:oracleoradataxueusers01.dbf
3、启动数据库,报错:
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 24680476 bytes
Fixed Size 75804 bytes
Variable Size 7749632 bytes
Database Buffers 16777216 bytes
Redo Buffers 77824 bytes
数据库装载完毕。
ORA-01157: ????/?????? 3 - ??? DBWR ????
ORA-01110: ???? 3: 'D:ORACLEORADATAXUEUSERS01.DBF'
4、查看恢复文件状态:
SQL> select * from v$recover_file;
FILE# ONLINE ERROR CHANGE# TIME
---------- ------- -------------------- ---------- ----------
3 ONLINE FILE NOT FOUND 0
6 ONLINE FILE NOT FOUND 0
5、将损坏的数据文件脱机并打开数据库:
SQL> alter database datafile 3 offline;
SQL> alter database datafile 6 offline;
SQL> alter database open;
数据库已更改。
6、拷贝热备的数据文件,对丢失的数据文件进行复原:
SQL> host copy f:dbusers01.dbf d:oracleoradataxue
SQL> host copy f:dbxue01.dbf d:oracleoradataxue
可以看到数据文件已还原:
SQL> select * from v$recover_file;
FILE# ONLINE ERROR CHANGE# TIME
---------- ------- -------------------- ---------- ----------
3 OFFLINE 2024404 25-7? -04
6 OFFLINE 2024410 25-7? -04
7、对丢失的数据文件进行恢复:
SQL> recover datafile 3
ORA-00279: ?? 2024404 (? 07/25/2004 16:04:43 ??) ???? 1 ????
ORA-00289: ??: D:ORACLEORADATAXUEARCHIVEXUET001S00006.ARC
ORA-00280: ?? 2024404 ???? 1 ???? # 6 ???
指定日志: {=suggested | filename | AUTO | CANCEL}
auto
已应用的日志。
完成介质恢复。
SQL> recover datafile 6
ORA-00279: ?? 2024410 (? 07/25/2004 16:05:04 ??) ???? 1
ORA-00289: ??: D:ORACLEORADATAXUEARCHIVEXUET001S00
ORA-00280: ?? 2024410 ???? 1 ???? # 6 ???
指定日志: {=suggested | filename | AUTO | CANCEL}
auto
已应用的日志。
完成介质恢复。
8、将脱机的数据文件联机,验证恢复:
SQL> alter database datafile 3 online;
SQL> alter database datafile 6 online;
SQL> select * from t;
A
----------
1
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/60857/viewspace-786310/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/60857/viewspace-786310/