无文件备份,但有该文件所有归档的恢复

1030阅读 0评论2009-03-10 舒风星
分类:Oracle

前提条件:数据库在归档模式下。
 
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、检查点等信息,应用归档日志进行恢复,可以完成完全恢复。
上一篇:10g ORA-32004与Deprecated 参数
下一篇:拥有RMAN全备(缺少后增文件),丢失全部数据文件,控制文件的恢复