oracle下实现恢复一个丢失的数据文件的代码

时间:2022-02-01 02:54:46

如果您目前拥有一个冷备份,但是缺少了其中的一个数据文件,但你目前存在所有的归档,如果您要恢复数据文件,可以参考以下的示例:  

复制代码代码如下:


[oracle@jumper eygle]$ sqlplus "/ as sysdba"  

SQL*Plus: Release 9.2.0.4.0 - Production on Sun Aug 20 01:22:50 2006  

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.  

Connected to an idle instance.  

SQL> startup mount  
ORACLE instance started.  

Total System Global Area  252777592 bytes  
Fixed Size                   451704 bytes  
Variable Size             134217728 bytes  
Database Buffers          117440512 bytes  
Redo Buffers                 667648 bytes  
Database mounted.  


SQL> alter database open;  
alter database open  
*  
ERROR at line 1:  
ORA-01157: cannot identify/lock data file 3 - see DBWR trace file  
ORA-01110: data file 3: '/opt/oracle/oradata/eygle/eygle02.dbf'  


SQL> alter database create datafile 3 as '/opt/oracle/oradata/eygle/eygle02.dbf';  

Database altered.  

SQL> select name from v$datafile;  

NAME  
-------------------------------------------------------  
/opt/oracle/oradata/eygle/system01.dbf  
/opt/oracle/oradata/eygle/undotbs01.dbf  
/opt/oracle/oradata/eygle/eygle02.dbf  
/opt/oracle/oradata/eygle/eygle01.dbf  

SQL> alter database open;  
alter database open  
*  
ERROR at line 1:  
ORA-01113: file 3 needs media recovery  
ORA-01110: data file 3: '/opt/oracle/oradata/eygle/eygle02.dbf'  


SQL> recover datafile 3;  
Media recovery complete.  
SQL> alter database open;  

Database altered.  

SQL>