删除ORACLE用户后,空间不释放的问题

萧涵007 2009-10-09 11:52:29
数据库所在硬盘空间剩下的不多了,所以我删除了一些不需要的用户:
drop user B0901 cascade;
drop user B0902 cascade;
drop user B0903 cascade;

但是删除用户后,空间一点变化都没有。。。
这几个用户使用的TABLESPACE都是USERS

现在我查系统中还有很多用户使用这个USERS表空间:
SQL> select username,default_tablespace from dba_users;

USERNAME DEFAULT_TABLESPACE
------------------------------ ------------------------------
A0908 USERS
A0901 USERS
A0904 USERS
A0907 USERS
A0909 USERS
A0905 USERS


现在我的问题是,如何要释放已经删除用户所占用的磁盘空间,而不影响其他使用USERS表空间的用户?
...全文
3231 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangchu_63 2009-10-14
  • 打赏
  • 举报
回复
多谢inthirties和wh62592855的不吝赐教。
其实ORACLE我才刚刚起步。
萧涵007 2009-10-13
  • 打赏
  • 举报
回复
谢谢各位了,我把问题解决了,主要方式还是处理了30多G的undotbs01.dbf文件(方法如下),表空间的处理我以后也会注意到的。

对于undotbs01.dbf文件太大的处理办法:
1.升级到9205
2.禁止undo tablespace自动增长

-- 创建一个新的小空间的UNDO TABLESPACE
CREATE UNDO TABLESPACE UNDOTBS2 DATAFILE '/opt/oracle/oradata/undotbs02.dbf' SIZE 100M REUSE AUTOEXTEND ON;
-- 设置新的表空间为系统UNDO_TABLESPACE
ALTER SYSTEM SET UNDO_TABLESPACE=UNDOTBS2;
-- DROP 旧的表空间
alter system set undo_retention=0;
然后才能DROP:(需要等待一会)
DROP TABLESPACE UNDOTBS1 INCLUDING CONTENTS AND DATAFILES;
SELECT TABLESPACE_NAME FROM DBA_TABLESPACES;
wh62592855 2009-10-10
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 withasmile 的回复:]
谢谢各位,我已经理解问题所在了~
但是目前还是没有能找到解决办法
需要删除的用户我已经删除了,目前系统中还有好几个用户使用同一个表空间,所以我不能把这个表空间删除。。。
以后再新建用户的时候,我就知道每个用户单独分配一个表空间,方便以后的管理
但是目前磁盘用了92%的空间,急需要释放些空间出来
我该如何处理呢
[/Quote]
6# inthirties给的那个链接你去看了吗
wh62592855 2009-10-10
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 dongycumt 的回复:]
模糊记得有个cascade ,删除用户的同时释放其对象
[/Quote]呵呵 你没发现楼主的语句里已经包含了CASCADE了吗
liuyi8903 2009-10-10
  • 打赏
  • 举报
回复
你可以resize datafile
萧涵007 2009-10-10
  • 打赏
  • 举报
回复
谢谢各位,我已经理解问题所在了~
但是目前还是没有能找到解决办法
需要删除的用户我已经删除了,目前系统中还有好几个用户使用同一个表空间,所以我不能把这个表空间删除。。。
以后再新建用户的时候,我就知道每个用户单独分配一个表空间,方便以后的管理
但是目前磁盘用了92%的空间,急需要释放些空间出来
我该如何处理呢
xiaosheng2008 2009-10-10
  • 打赏
  • 举报
回复
举例:
alter tablespace tablespace_name coalesce;
alter database datafile 'data_file_name' resize 100M;
  • 打赏
  • 举报
回复
磁盘空间不足,建议楼主从操作系统的级别去处理!
像临时文件,无效的归档文件等等,都可以处理
zhangchu_63 2009-10-09
  • 打赏
  • 举报
回复
影响空间大小的是数据,而数据是存放到TABLESPACE中的,你只删除用户不删除表空间的对应的OBJECT,空间当然没变化啦。
你是想删除用户对应的表是吧,那你当初就不应该让这么多用户共用一个TABLESPACE。
使用:
select * from dba_objects t where t.owner = 'username'

查询出你要删除用户对应的OBJECT,然后DROP掉就OK了。
EastHoo 2009-10-09
  • 打赏
  • 举报
回复
删除用户并不会释放磁盘空间,磁盘空间只跟数据文件有关系,跟您的用户表是不是有数据没关系。
萧涵007 2009-10-09
  • 打赏
  • 举报
回复
USERNAME DEFAULT_TABLESPACE
------------------------------ ------------------------------
MGMT_VIEW SYSTEM
SYS SYSTEM
DBSNMP SYSAUX
SYSMAN SYSAUX
SYSTEM SYSTEM
OUTLN SYSTEM
EXFSYS SYSAUX
DMSYS SYSAUX
WMSYS SYSAUX
ORDSYS SYSAUX
XDB SYSAUX
OLAPSYS SYSAUX
SI_INFORMTN_SCHEMA SYSAUX
ORDPLUGINS SYSAUX
MDSYS SYSAUX
CTXSYS SYSAUX
ANONYMOUS SYSAUX

不是users的我刚刚都没有帖出来
liuyi8903 2009-10-09
  • 打赏
  • 举报
回复
那你是不是大部分的objects并不是在usrs里面啊。

雪狼__ 2009-10-09
  • 打赏
  • 举报
回复
模糊记得有个cascade ,删除用户的同时释放其对象
wh62592855 2009-10-09
  • 打赏
  • 举报
回复
呵呵 我也来凑个热闹
如果zhangchu_63兄弟对USER和SCHEMA还不太清楚的话 可以看下下面这个文章

http://blog.csdn.net/wh62592855/archive/2009/09/27/4599333.aspx
inthirties 2009-10-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 easthoo 的回复:]
楼主要释放的好像是磁盘空间吧,如果是,drop是没用的(从这也看出您对Oracle的体现结构不熟)
如果不是,而只是释放用户数据在数据文件占用的空间,就按照zhangchu_63那样。
[/Quote]

参考一下

http://www.inthirties.com/thread-6-1-1.html

http://blog.csdn.net/inthirties/archive/2009/09/09/4531986.aspx
EastHoo 2009-10-09
  • 打赏
  • 举报
回复
楼主要释放的好像是磁盘空间吧,如果是,drop是没用的(从这也看出您对Oracle的体现结构不熟)
如果不是,而只是释放用户数据在数据文件占用的空间,就按照zhangchu_63那样。
inthirties 2009-10-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zhangchu_63 的回复:]
影响空间大小的是数据,而数据是存放到TABLESPACE中的,你只删除用户不删除表空间的对应的OBJECT,空间当然没变化啦。
你是想删除用户对应的表是吧,那你当初就不应该让这么多用户共用一个TABLESPACE。
使用:
SQL codeselect*from dba_objects twhere t.owner='username'
查询出你要删除用户对应的OBJECT,然后DROP掉就OK了。
[/Quote]

这样的理解是不对的,user即为schema。而对象是以schema为基础,进行存储的,这里drop掉用户,所以是会删除掉这个用户的对象的,所以你给的sql是会返回什么样的数据叻。 如果是你描述的这样的,oracle的实现也太考虑的不仔细了。

那么下面回到我们的问题上来,为什么空间不会减少了,这里主要还是老的话题,tablespace的shrink的问题。 这里删除掉user和user里的对象,并不会shrink表的数据文件,要shrink数据文件,需要用其他的一些方法。

可见
http://www.inthirties.com/thread-6-1-1.html

http://blog.csdn.net/inthirties/archive/2009/09/09/4531986.aspx

wxkang123 2009-10-09
  • 打赏
  • 举报
回复
study

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧