为什么在Oracle中,删除了表空间但是对应的数据文件还存在?
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] ,如下图所示。
具体看用了什么语法才能判断是否删除了对应的数据文件。
删除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 —— 含前两项。
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 -- 含前两项。
你是采用了哪个选项?