对于归档模式:
alter database datafile 'file_name' offline 和 offline drop 没有什么区别。
对于非归档模式:
如果是非归档模式,只能是offline drop.
说明:
1) 以上命令只是将该数据文件OFFLINE,而不是在数据库中删除数据文件。该数据文件的信息在控制文件种仍存在。查询v$datafile,仍显示该文件。
2) 归档模式下offline和offline drop效果是一样的
3) offline后,存在此datafile上的对象将不能访问
4) noarchivelog模式下,只要online redo日志没有被重写,可以对这个文件recover后进行online操作
SQL> select file#,status from v$datafile; FILE# STATUS ---------- ------- 1 SYSTEM 2 ONLINE 3 ONLINE 4 ONLINE 5 ONLINE 6 RECOVER 已选择6行。
SQL> recover datafile 6;
完成介质恢复。
SQL> alter database datafile 6 online;
数据库已更改。
解决方法: SQL> alter database datafile 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/TSTEST001.DBF' offline drop; SQL> alter database open; SQL> drop tablespace CTBASEDATA;
---10g以后可以使用:
alter tablespace users add datafile '/u01/app/oracle/oradata/orcl/users02.dbf' size 5M autoextend off;
alter tablespace users drop datafile '/u01/app/oracle/oradata/orcl/users02.dbf';