我建立了一个用户,不小心把这个用户的表空间默认成了USERS表空间,当我把从其他地方备份的数据导入到我的数据库中的时候,发现我数据库文件所在的磁盘的空间满了,于是我想把我刚才导入的数据删除,我把这个用户给删除了,但USERS表空间的数据并没有释放,现在不知道如何处理好了,请各位高手多指教!

解决方案 »

  1.   

    DROP USER USERS CASCADE 這樣可以刪除USERS所占用的表空間
    不過建議你不要刪除該表空間.你可以增加該表空間的大小:
    ALTER TABLESPACE USERS ADD DATAFILE '....' SIZE xxxM
      

  2.   

    USERS 表空间不能删除SQL> DROP USER TEST;
    DROP USER TEST
    *
    ERROR 位于第 1 行:
    ORA-01922: 必须指定 CASCADE 以删除'TEST'
    你删除用户的时候,如果该用户下有数据对象,那么必须指定 CASCADE,
    所以既然你成功删除了那个用户,那么空间不释放是没有道理的。怀疑你的 USERS 表空间是设置成了自动扩展,而且没有限制最大值,所以导致文件扩展之后,磁盘满了。这样即便数据已经删除,但物理文件不会收缩的。你可以尝试如下缩减数据文件大小:
    ALTER DATABASE DATAFILE 'filename' RESIZE 100M;如下禁用自动扩展:
    ALTER DATABASE DATAFILE 'filename' AUTOEXTEND OFF;