oracle归档模式下恢复一个被offline drop的datafile的方法
参考自:
how to recover offline dropped datafile in archivelog mode (文档 id 286355.1)
如下的实验基于oracle 11.2.0.4 linux x86-64bit完成
[oracle@rhel63single u02]$ sqlplus / as sysdba
sql*plus: release 11.2.0.4.0 production on sun feb 15 20:33:17 2015
copyright (c) 1982, 2013, oracle. all rights reserved.
connected to:
oracle database 11g enterprise edition release 11.2.0.4.0 - 64bit production
with the partitioning, olap, data mining and real application testing options
sql> archive log list;
database log mode archive mode
automatic archival enabled
archive destination /u02/arch
oldest online log sequence 126
next log sequence to archive 128
current log sequence 128
sql> select file_id from dba_data_files;
file_id
----------
4
3
2
1
5
6
7
8
9
10
11
11 rows selected.
sql> select name from v$dbfile;
name
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/test/users01.dbf
/u01/app/oracle/oradata/test/undotbs01.dbf
/u01/app/oracle/oradata/test/sysaux01.dbf
/u01/app/oracle/oradata/test/system01.dbf
/u01/app/oracle/oradata/test/ten01.dbf
/u01/app/oracle/oradata/test/tb_test_01.dbf
/u01/app/oracle/oradata/test/ts1.dbf
/u01/app/oracle/oradata/test/ts2.dbf
/u01/app/oracle/oradata/test/test01.dbf
/u01/app/oracle/oradata/test/test_uni_sz_2m_01.dbf
/u01/app/oracle/oradata/test/test_uni_sz_1m_01.dbf
11 rows selected.
sql> set lines 290
sql> col file_name format a60
sql> select file_name,file_id from v$dbfile;
file_name file_id
------------------------------------------------------------ ----------
/u01/app/oracle/oradata/test/users01.dbf 4
/u01/app/oracle/oradata/test/undotbs01.dbf 3
/u01/app/oracle/oradata/test/sysaux01.dbf 2
/u01/app/oracle/oradata/test/system01.dbf 1
/u01/app/oracle/oradata/test/ten01.dbf 5
/u01/app/oracle/oradata/test/tb_test_01.dbf 6
/u01/app/oracle/oradata/test/ts1.dbf 7
/u01/app/oracle/oradata/test/ts2.dbf 8
/u01/app/oracle/oradata/test/test01.dbf 9
/u01/app/oracle/oradata/test/test_uni_sz_2m_01.dbf 10
/u01/app/oracle/oradata/test/test_uni_sz_1m_01.dbf 11
11 rows selected.
sql> alter database datafile 9 offline drop;
database altered.
sql> select file#, status from v$datafile where file#='9';
file# status
---------- -------
9 recover
sql> select file#, status from v$datafile_header where file#='9';
file# status
---------- -------
9 offline
sql> alter system switch logfile ;
system altered.
sql> /
system altered.
sql> /
/
/
system altered.
sql>
system altered.
sql>
system altered.
sql> sql>
sql>
sql> /
system altered.
sql>
sql>
sql> archive log list;
database log mode archive mode
automatic archival enabled
archive destination /u02/arch
oldest online log sequence 132
next log sequence to archive 134
current log sequence 134
sql> recover datafile 9;
ora-00279: change 3155176 generated at 02/15/2015 20:34:05 needed for thread 1
ora-00289: suggestion : /u02/arch/1_128_807882551.dbf
ora-00280: change 3155176 for thread 1 is in sequence #128
specify log: {=suggested | filename | auto | cancel}
auto --------------->敲入auto
log applied.
media recovery complete.
sql> select * from v$log;