暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle表空间使用率突增排查

stofm 2025-03-15
271

问题概述

2025年3月14日一早收到客户微信消息,反馈一个业务量很小的表空间,凌晨时空间使用率告警了,空间增长了几十个GB,让排查下哪些表突然增长了。
排查后发现是前缀为CMP3$(也可能是CMP4$)的表在凌晨时数据量增加了47GB左右,导致了表空间空间使用率告警。该表是Compression advisor任务生成的表。
Compression advisor是在11GR2新增加的advisor,伴随着Segment advisor运行时被执行,当然也可以手动调用执行,但是目前还不能单独禁用Compression advisor,通过禁用Segment advisor来一并禁用Compression advisor。
正常情况Compression advisor生成的CMP3$类的表,在任务结束时会自动删除,但是此次任务在维护窗口期内未跑完,到时间后被stop了,所以表也没有被自动删除。CMP3$此类表可以安全的手动删除。
另外防止该类事件再次出现,禁用了Segment advisor。

问题分析

1、Bethune监控平台截取的告警截图,
image.png

2、查看该表空间前后几个小时的空间使用情况,发现主要空间增长发生在0点-2点之间。

select s.name tablespace_name,
to_char(to_date(rtime, 'mm/dd/yyyy hh24:mi:ss'),'yyyy-mm-dd hh24:mi') sample_time,
round(tablespace_size * 8 / 1024 / 1024, 2) tablespace_size_gb,
round(tablespace_usedsize * 8 / 1024 / 1024, 2) tablespace_usedsize_gb,
round(tablespace_usedsize * 100 / tablespace_size, 2) tbs_usage
from dba_hist_tbspc_space_usage t, v$tablespace s
where t.tablespace_id = s.ts#
and s.name = '&tablespace_name'
and to_date(rtime, 'mm/dd/yyyy hh24:mi:ss') > sysdate - 1
order by t.snap_id;

image.png

3、查看该时间段增长的对象,发现主要是2个LOB:SYS_LOB0000627834C00012$$、SYS_LOB0000627834C00011$$

SELECT *
FROM ( SELECT 
begin_interval_time,
c.TABLESPACE_NAME,
c.segment_name,
b.object_type,
ROUND (SUM (space_used_delta) / 1024 / 1024, 2) "Growth (MB)"
FROM dba_hist_snapshot sn,
dba_hist_seg_stat a,
dba_objects b,
dba_segments c
WHERE begin_interval_time >= to_date('2025-03-13 23:00','yyyy-mm-dd hh24:mi')
AND begin_interval_time <= to_date('2025-03-14 04','yyyy-mm-dd hh24')
AND sn.snap_id = a.snap_id
AND b.object_id = a.obj#
AND b.owner = c.owner
AND b.object_name = c.segment_name
AND a.INSTANCE_NUMBER = sn.INSTANCE_NUMBER
AND a.INSTANCE_NUMBER = 1
AND c.tablespace_name='&tbsname'
GROUP BY begin_interval_time,c.TABLESPACE_NAME, c.segment_name, b.object_type)
ORDER BY 1,5 ASC;

image.png

4、再查询这两个LOB来自表CMP3$460694,该表就是Compression advisor生成的。

image.png

5、正常情况Compression advisor生成的CMP3类的表,在任务结束时会自动删除才对,该表未删除猜测该任务因为某些原因中止了,查看任务的历史执行情况,发现该任务在维护窗口期内未执行完成,被stop了,所以CMP3类的表也没有自动删除
image.png

问题解决

1、出现问题的第一时间,客户临时扩容了表空间。
2、Compression advisor生成的CMP表可以安全的手动删除

drop table CMP3$460694;

3、防止该类事件再次出现,禁用了Segment advisor

exec dbms_auto_task_admin.disable(client_name => 'auto space advisor',operation => null,window_name => null);

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论