怎么删除用户,表空间,数据文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么删除用户,表空间,数据文件相关的知识,希望对你有一定的参考价值。

Oracle 使用时间长了, 新增了许多user 和tablespace. 需要清理一下
对于单个user和tablespace 来说, 可以使用如下命令来完成。

步骤一: 删除user

drop user ×× cascade

说明: 删除了user,只是删除了该user下的schema objects,是不会删除相应的tablespace的。

步骤二: 删除tablespace
DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;

但是,因为是供开发环境来使用的db, 需要清理的user 和 table space 很多。
思路:
Export出DB中所有的user和tablespace, 筛选出系统的和有用的tablespace,把有用的信息load到一张表中去。
然后写例程循环,把不在有用表的tablespace删掉
1. select username,default_tablespace from dba_users;
2.

create table MTUSEFULSPACE
(
ID Number(4) NOT NULL PRIMARY KEY,
USERNAME varchar2(30),
参考技术A 如果不是Oracle11gR2版本,数据文件是无法删除的,要删除数据文件连同表空间一起删除。
Oracle11gR2版可以删除数据文件。但你给的题目没有正确答案。
Oracle11gR2版删除数据文件的步骤如下:
1、保证表空间处在联机状态;
2、通过SQL语句删除数据文件;
3、删除数据文件语法:ALTER TABLESPACE 表空间名 DROP DATAFILE 数据文件名;
参考技术B 不建议用oralce的命令管理磁盘上的文件,最好用oracle的语法删除表空间,然后利用OS的命令删除文件

删除表空间联带数据文件

--查看数据文件大小

select file_name,tablespace_name,bytes/1024/1024 M from dba_data_files;

--注意系统表空间、临时表空间、UNDO表空间都不要删除,否则会很麻烦 ,只能删除用户自定义的业务表空间

--带数据文件一起删除表空间的语句

DROP TABLESPACE <表空间名称> INCLUDING CONTENTS AND DATAFILES;

enjoy:P

以上是关于怎么删除用户,表空间,数据文件的主要内容,如果未能解决你的问题,请参考以下文章

如何彻底删除oracle创建的用户和表空间

oracle怎么删除表空间下所有的表

Oracle数据库,如果将用户和用户下的表空间都删除,能否用dmp文件恢复

Oracle 11G删除数据库表空间的文件

删除表空间联带数据文件

更改或删除Oracle表空间的数据文件