前提条件:数据库在归档模式下。
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
SQL> select name from v$datafile;
NAME
-----------------------------------------
E:\ORACLE\ORASJH\SYSTEM01.DBF
E:\ORACLE\ORASJH\UNDOTBS01.DBF
E:\ORACLE\ORASJH\SYSAUX01.DBF
E:\ORACLE\ORASJH\USERS01.DBF
SQL> create tablespace sjh datafile 'E:\ORACLE\ORASJH\sjh.dbf' size 2m;
表空间已创建。
SQL> create table test tablespace sjh as select * from dba_users;
表已创建。
SQL> select count(*) from dba_users;
COUNT(*)
----------
11
SQL> commit;
提交完成。
SQL> alter system switch logfile;
系统已更改。
SQL> shutdown abort;
ORACLE 例程已经关闭。
将sjh.dbf改名为sjh.dbf.bak
SQL> conn as sysdba
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 167772160 bytes
Fixed Size 1247876 bytes
Variable Size 71304572 bytes
Database Buffers 88080384 bytes
Redo Buffers 7139328 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 5 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 5: 'E:\ORACLE\ORASJH\SJH.DBF'
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------
E:\ORACLE\ORASJH\SYSTEM01.DBF
E:\ORACLE\ORASJH\UNDOTBS01.DBF
E:\ORACLE\ORASJH\SYSAUX01.DBF
E:\ORACLE\ORASJH\USERS01.DBF
E:\ORACLE\ORASJH\SJH.DBF
SQL> alter database create datafile 'E:\ORACLE\ORASJH\SJH.DBF';
数据库已更改。
SQL> recover datafile 'E:\ORACLE\ORASJH\SJH.DBF';
完成介质恢复。
SQL> alter database open;
数据库已更改。
由于控制文件中包含了丢失文件信息,所以可以通过create datafile方式重新数据文件,通过控制文件中记录的文件信息、SCN、检查点等信息,应用归档日志进行恢复,可以完成完全恢复。
阅读(1003) | 评论(0) | 转发(0) |