来源于:http://www.itpub.net/thread-513609-1-1.html

http://bbs.csdn.net/topics/330251089

http://blog.csdn.net/rznice/article/details/6107650

1、首先要得到USERS01.DBF的file_id

SELECT file_name,file_id FROM dba_data_files WHERE file_name like '%USER%';

2、统计这个数据文件有哪些段,各占多少空间,然后再考虑是drop还是truncate等处理操作。

select owner,segment_name,sum(bytes) 
  from dba_extents
where file_id=如上的file_id
group by owner,segment_name
order by 3 desc;

3、找到哪个用的空间多了,处理一下吧。

不论使用delete还是truncate删除数据,ORACLE数据文件都不会自动收缩;
如果要收缩数据文件,delete不能降低HWM,delete后再alter table XXX move;
或者使用truncate后再resize数据文件试试
sql>truncate test1
sql>alter database datafile 'users01.dbf' resize 200m;

可以通过resize datafile来减小数据文件的大小。
首先,要查清楚数据文件的真实使用空间。可以通过查询dba_extents达到这个目的。oatbs表空间使用的数据文件为E:/Oracle/PRODUCT/10.2.0/ORADATA/ORCL/OATBS.DBF

SQL> select file_name,e.file_id, sum(e.bytes)/1024/1024 as MB from dba_extents e join dba_data_files f on e.file_id=f.file_id group by file_name,e.file_id;

FILE_NAME FILE_ID MB
-------------------------------------------------------------------------------- ---------- ----------
E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/USERS01.DBF 4 3.1875
E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/OATBS.DBF 8 73.375
E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/SYSAUX01.DBF 3 253.8125
E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/EXAMPLE01.DBF 5 77.625
E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/UNDOTBS01.DBF 2 42.8125
E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/SYSTEM01.DBF 1 500.625

6 rows selected

可以看出OATBS.DBF实际使用空间只有73MB。resize datafile的时候不可以小过这个大小。

SQL> alter database datafile 8 resize 80m;

Database altered

SQL>

OATBS.DBF 文件由原先的100M减少为现在的80M。

oracle 删除用户及相关表数据,释放磁盘空间的更多相关文章

  1. oracle 删除表、表空间、用户时,如何释放磁盘空间

    truncate table tablename DROP STORAGE; drop 执行drop table xx 语句drop后的表被放在回收站(user_recyclebin)里,而不是直接删 ...

  2. MySQL删除数据后磁盘空间的释放情况【转】

    OPTIMIZE TABLE 当您的库中删除了大量的数据后,您可能会发现数据文件尺寸并没有减小.这是因为删除操作后在数据文件中留下碎片所致.OPTIMIZE TABLE 是指对表进行优化.如果已经删除 ...

  3. MySQL删除数据几种情况以及是否释放磁盘空间【转】

    MySQL删除数据几种情况以及是否释放磁盘空间: 1.drop table table_name 立刻释放磁盘空间 ,不管是 Innodb和MyISAM ; 2.truncate table tabl ...

  4. oracle删除用户及其表空间

    oracle删除用户及其表空间 删除表空间:可以先将其offlinealter tablespace xx offline;将磁盘上的数据文件一同删除drop tablespace xxx inclu ...

  5. (转) Delete/Truncate删除,释放表空间、降低高水位线、resize释放磁盘空间相关优化

    硬盘空间不足,打算删除数据库中的多余数据,但删除数据后,硬盘硬盘空间不能释放.[delete后用:alter table table_name move    truncate后用:alter tab ...

  6. mysql 正确清理binlog 删除数据后磁盘空间的

    (3条消息)MySQL删除数据后磁盘空间的释放情况 - ZERO - CSDN博客 https://blog.csdn.net/zero__007/article/details/51404091 m ...

  7. 利用lsof命令查找已经删除的文件来释放磁盘空间

    测试环境一台服务器/目录空间使用率达到97%,但是通过du -sh *发现实际空间没用到那么多,初步怀疑,之前删除的文件,有运行中的进程一直占用,导致空间没有释放,如图通过du -sh *发现共实际使 ...

  8. mongodb 释放磁盘空间

    db.copyDatabase("from","to","127.0.0.1:16161"); 将127.0.0.1上的from库.拷贝到t ...

  9. Mysql InnoDB彻底释放磁盘空间

    Innodb数据库对于已经删除的数据只是标记为删除,并不真正释放所占用的磁盘空间,这就导致InnoDB数据库文件不断增长. 如果需要彻底释放磁盘空间,则需要先导出数据,然后删除数据文件,最后导入数据. ...

随机推荐

  1. Windows Azure虚拟机和云服务实例计费方式更新

    在之前的Windows Azure计费账单中,A0,A1,A2,A3,A4系列的虚拟机(云服务实例)都是以A1为基准计费单位的,即: 虚拟机大小 计费单位(小时) A0 A1*0.25 A1 A1*1 ...

  2. POJ2157Maze[DFS !]

    Maze Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 3818   Accepted: 1208 Description ...

  3. Strcmp(字符串1,字符串2)函数 Sizeof && strlen() Substr(a,b)

    Strcmp(字符串1,字符串2)函数 { strcmp函数是比较两个字符串的大小,返回比较的结果.一般形式是:  i=strcmp(字符串,字符串); 其中,字符串1.字符串2均可为字符串常量或变量 ...

  4. UNITY3D的变量初始化问题

    大部分是代码声明变量,而变量的初始化值在编辑器中指定,不在代码中直接指定 奇怪! 而且只有Public的才能在编辑器中出现,如果你改为Private就不再显示,如果你再改回PUBLIC,原先指定的初化 ...

  5. IIS7.5中神秘的ApplicationPoolIdentity

    IIS7.5中(仅win7,win2008 SP2,win2008 R2支持),应用程序池的运行帐号,除了指定为LocalService,LocalSystem,NetWorkService这三种基本 ...

  6. [No000016]为什么假期计划总是做不到?

  7. MVC编写的新闻页面

    1.新闻发布系统 2.架构确立 3.数据表确立 4.分层 entity dao BaseDao sqlserver jar包 接口层(NewsDetailDAO) impl (NewsDetailDA ...

  8. java 22 - 20 多线程之线程池

    程序启动一个新线程成本是比较高的,因为它涉及到要与操作系统进行交互. 而使用线程池可以很好的提高性能,尤其是当程序中要创建大量生存期很短的线程时,更应该考虑使用线程池. 线程池里的每一个线程代码结束后 ...

  9. python读取配置文件

    从/mnt目录下读取section配置文件sample.ini [db] host=192.168.1.116 hostaddr=192.168.1.116 port=5432 dbname=clas ...

  10. 设置root用户不保存终端历史记录到.bash_history

    在.bashrc的最后行追加 unset HISTFILE cat .bash_history 还能看到 unset HISTFILE 之前保留的命令unset HISTFILE 之后的命令不会保留, ...