oracle占用的空间特别大,该如何解决?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle占用的空间特别大,该如何解决?相关的知识,希望对你有一定的参考价值。

USERS01.DBF,APP,UNDOTBS01.DBF,USER02,SYSTEM01.DBF,SYSAUX01.DBF加起来有100多个G= =,该如何解决》?
用sql/server如何处理这个问题,或者在dos环境下如何解决这个问题?大神们请具体详细说明,谢谢。
如何能查看这是哪个用户下的不?

首先如果你这100geG确实是业务产生的数据量占用,那么没法解决。因为实际业务量就在那
其次,如果你确定业务数据量远远没有这些,则建议对表进行分析。可能有很多表有碎片,找到这些表然后整理收缩表。
参考技术A 可以用resize重新设置文件大小
你百度一下,oracel resize怎么用,别人写好也不一定好用追问

这个表是哪个用户下的?

参考技术B 查TOP20最大表

column Owner format a15 heading 'Owner'
column SegmentName format a40 heading 'Object Name'
column SegmentType format a9 heading 'Segment|Type'
column BytesUsed format 999,999,999 heading 'Size (K)'
column Blocks format 99,999,999 heading 'Blocks'
column ExtentNumber format 999,999 heading 'Extent|Number'

select *
from (select
owner Owner,
segment_name SegmentName,
segment_type SegmentType,
bytes / 1024 BytesUsed,
blocks Blocks,
extents ExtentNumber
from dba_segments
where owner not in ('SYS', 'SYSTEM', 'OUTLN')
order by blocks desc)
where rownum < 21;

然后看看是谁的表占了吧。追问

这是那个用户下的?system还是其他自己创建的用户?

追答

用system跑

本回答被提问者和网友采纳

清理oracle lobsegment

查询到表空间有个对象占用特别大的空间700多G

经查询该lob存储的表是:ZSDLOG003

 

查询语句:select object_name,status from dba_objects where object_id=\'0000563464\';

对表进行导入导出操作后,存储空间下降。

 

参考文档:https://blog.csdn.net/robbie1314520/article/details/8439202

 

以上是关于oracle占用的空间特别大,该如何解决?的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统Oracle Temp01.dbf不断变大应该这样解决

如何解决Linux系统文件已删除但空间未释放

如何解决Oracle数据库归档日志占满磁盘空间

清理oracle lobsegment

oracle 查询出 表的空间大小 占用存储空间

如何计算该解决方案的时间和空间复杂度?