登上数据库检查等待事件时,发现活动会话数较高,某一用户有较多DML操作积压,但并无锁表情况,检查表空间也没有剩余空间非常小的,现象比较奇怪。以下为当时情况的ASH报告:


表空间使用情况如下:

检查alert日志后,发现了异常:

可以看到,有大量表的索引报ORA-1654无法扩展错误,且都是表空间TBS_IDX_INTERFACE。此时怀疑是表空间碎片率太高,或索引的存储参数设置异常,导致无法分配新的区,抽样检查报错索引的next extent和 pct increase也无异常。



由此可以看出,虽然表空间剩余空间仍有100G左右,但没有连续的可分配区大于1M,小于索引的next extent,故导致报错。结合库的业务类型,确实有大量的DML操作,且表空间中有大量的空索引,占据大量零碎的区。

后续得监控此库的表空间碎片情况,还需定期对相关表进行shrink,定期重建索引,以避免问题再次发生。

更多精彩干货分享
点击下方名片关注
IT那活儿

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




