为什么在Oracle中,删除了表空间但是对应的数据文件还存在?

手动创建了表空间A,对应的数据文件为A.dbf,然后删除表空间A但是数据文件为A.dbf并没有删除。

1、首先表空间分三种。永久表空间:是存储数据库中需要永久化存储的对象,如表、视图、存储过程、索引等。临时表空间:存储数据库中的执行过程,临时表空间是通用的。undo表空间:保存数据修改前的副本。

2、然后要查看用户默认表空间和临时表空间select default_tablespace,temporary_tablespace from dba_users where username='用户名'。注意的是用户名要大写。

3、接着就是创建永久表空间语法create tablespace 表空间名字 datafile  '表空间位置'  size 50m;create tablespace 是表空间名字  

datafile '/data/oracle/oradata/是表空间文件名称'  size 500M autoextend on next 150m。

4、然后为了指定默认表空间,在创建用户的时候需要用户指定默认的表空间。才可以使用创建的用户可以直接登录表空间,注意的是只要有足够的权限在表空间内可以进行其它操作。

5、再来就是修改表空间的大小,当发现某个表空间存储空间不足时,就可以为表空间添加新的数据文件,来扩展表空间大小,要进行先增加大小后再查看表空间大小发现已经更改。

6、最后就可以删除表空间,要是在删除表空间的同时将表空间中的数据文件一同删除时,注意的是需要加上[INCLUDING CONTENTS] ,如下图所示。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-09-13

具体看用了什么语法才能判断是否删除了对应的数据文件。

删除oracle表空间的基本语法为:

DROP TABLESPACE tablespace_name  [ including contents [ and datafiles ] [ CASCADE CONSTRAINT ]];

无选项 —— 当表空间为空才能删除;
including contents —— 删除表空间及对象;
including contents and datafiles —— 删除表空间、对象及数据文件;
includingcontents CASCADE CONSTRAINT —— 删除关联;
including contents and datafiles cascade constraint —— 含前两项。

第2个回答  推荐于2017-11-25
Oracle 11g删除表空间语法描述:
DROP TABLESPACE tablespace_name
[ including contents [ and datafiles ] [ CASCADE CONSTRAINT ] ];
无选项 -- 当表空间为空才能删除;
including contents — 删除表空间及对象;
including contents and datafiles — 删除表空间、对象及数据文件;
includingcontents CASCADE CONSTRAINT — 删除关联;
including contents and datafiles cascade constraint -- 含前两项。
你是采用了哪个选项?本回答被提问者和网友采纳
第3个回答  2013-03-07
删除操作后,在你的Oracle里已经看不到A.dbf了,但是在你的操作系统下这个文件依然存在,再手动把A.dbf删除掉就好了
第4个回答  2013-03-07
应该这样删drop tablespace A include contents and datafiles; 如果只是drop tablespace A,数据文件不会被删除的
相似回答