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

如题所述

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),
温馨提示:内容为网友见解,仅供参考
第1个回答  2017-10-25
如果不是Oracle11gR2版本,数据文件是无法删除的,要删除数据文件连同表空间一起删除。
Oracle11gR2版可以删除数据文件。但你给的题目没有正确答案。
Oracle11gR2版删除数据文件的步骤如下:
1、保证表空间处在联机状态;
2、通过SQL语句删除数据文件;
3、删除数据文件语法:ALTER TABLESPACE 表空间名 DROP DATAFILE 数据文件名;
第2个回答  2017-10-26
不建议用oralce的命令管理磁盘上的文件,最好用oracle的语法删除表空间,然后利用OS的命令删除文件
相似回答