[oracle@baktest130 test]$ cp -p users01.dbf users01.dbf.bak
[oracle@baktest130 test]$ rm users01.dbf
SQL> select * from emp;
select * from emp
*
ERROR at line 1:
ORA-01116: error in opening database file 4
ORA-01110: data file 4: '/data/oracle/oradata/test/users01.dbf'
ORA-27041: unable to open file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
SQL> conn / as sysdba
Connected.
SQL> alter system switch logfile;
System altered.
SQL> alter system switch logfile;
System altered.
SQL> alter system switch logfile;
System altered.
SQL> alter system switch logfile;
System altered.
SQL> shutdown immediate;
ORA-01116: error in opening database file 4
ORA-01110: data file 4: '/data/oracle/oradata/test/users01.dbf'
ORA-27041: unable to open file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
SQL> shutdown abort
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 1603411968 bytes
Fixed Size 2213776 bytes
Variable Size 939526256 bytes
Database Buffers 654311424 bytes
Redo Buffers 7360512 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 4 - see DBWR trace file
ORA-01110: data file 4: '/data/oracle/oradata/test/users01.dbf'
SQL> alter database datafile '/data/oracle/oradata/test/users01.dbf' offline drop;
Database altered.
SQL> alter database open;
Database altered.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 1603411968 bytes
Fixed Size 2213776 bytes
Variable Size 939526256 bytes
Database Buffers 654311424 bytes
Redo Buffers 7360512 bytes
Database mounted.
SQL> recover datafile '/data/oracle/oradata/test/users01.dbf';
ORA-00279: change 12979342 generated at 03/25/2015 11:21:00 needed for thread 1
ORA-00289: suggestion : /data/oracle/arch/test/1_364_874620667.dbf
ORA-00280: change 12979342 for thread 1 is in sequence #364
Specify log: {
AUTO
ORA-00279: change 12979627 generated at 03/25/2015 11:33:39 needed for thread 1
ORA-00289: suggestion : /data/oracle/arch/test/1_365_874620667.dbf
ORA-00280: change 12979627 for thread 1 is in sequence #365
Log applied.
Media recovery complete.
SQL> alter database datafile '/data/oracle/oradata/test/users01.dbf' online;
Database altered.
SQL> alter database open;
Database altered.
SQL> conn scott/admin
Connected.
SQL> select count(1) from emp;
COUNT(1)
----------
14
归档模式和非归档模式的恢复步骤一致。