没有数据的表空间,删除1个文件

2019-08-02

没有数据的表空间,几个文件可以drop掉1个吗?

1、如果不是Oracle11gR2版本,数据文件是无法删除的,要删除数据文件连同表空间一起删除。

Unable to Drop a Datafile From the Tablespace Using Alter Tablespace Command
违反下列任何一个条件,该datafile均不能被drop
1)必须为空,否则会报:ORA-03262: the file is non-empty
alter tablespace CRM_TEST drop datafile '002.dbf';

ORA-03261: the tablespace CRM_TEST has only one file
drop table xx
或者直接drop tablespace CRM_TEST;
2)不能是所属表空间的第一个file
3)不能在read-only表空间中。
4)不能被offline,否则会报:ORA-03264: cannot drop offline datafile of locally managed tablespace

2、注意要保证表空间处在联机状态;删除dbf文件:
ALTER TABLESPACE 表空间名 DROP DATAFILE 数据文件名;
Tablespace altered.
alter tablespace ts drop datafile 'a.dbf';
select file#,name from v$datafile;

3、ALTER DATABASE DATAFILE OFFLINE DROP;
该命令执行后,该数据文件仍然是表空间的一部分,数据字典中仍然有该数据文件的相关信息,只不过控制文件中标志该数据文件为offline drop的状态,启动数据库时在控制文件和数据文件之间不进行scn的比对。

分类:Linux | 标签: |

相关日志

评论被关闭!