OS version:
[oracle@base ~]$ uname -a
Linux base.no.sohu.com 2.6.9-55.ELsmp #1 SMP Fri Apr 20 17:03:35 EDT 2007 i686 i686 i386 GNU/Linux
DB version:
SQL> select version from v$instance;
VERSION
-----------------
9.2.0.1.0
Here is my steps,
SQL>alter database datafile '/usr/oradata/bill/soq05.dbf' offline;
Database altered.
SQL>alter database datafile '/usr/oradata/bill/soq05.dbf' offline drop;
Database altered.
Cause there is nothing errors generated, I thought the commands executed sucessfully. But it's not.
SQL> SELECT NAME,STATUS FROM v$datafile WHERE NAME='/usr/oradata/bill/soq05.dbf';
NAME STATUS
---------------------------------------- -------
/usr/oradata/bill/soq05.dbf RECOVER
SQL> SELECT FILE#, STATUS, ERROR, RECOVER, TABLESPACE_NAME, NAME
2 FROM V$DATAFILE_HEADER
3 WHERE RECOVER = 'YES' OR (RECOVER IS NULL AND ERROR IS NOT NULL);
FILE# STATUS ERROR RECOVER TABLESPACE_NAME NAME
---------- ------- -------------------- -------------------- ------------------------------ ----------------------------------------
18 OFFLINE YES SOQ /usr/oradata/bill/soq05.dbf
[oracle@base ~]$ ll /usr/oradata/bill/soq05.dbf
-rw-r----- 1 oracle oinstall 1073750016 Aug 28 17:39 /usr/oradata/bill/soq05.dbf
The datafile haven't been droped successfully and its status changed to 'RECOVER'. Also, I can't online it now.
What should I do to make this datafile droped or at least make it online/offline? What I am worry is the database will be failed to restart because of this 'RECOVER' datafile.
Thanks very much!
Satine