资讯专栏INFORMATION COLUMN

记一次表空间碎片导致索引无法扩展问题

IT那活儿 / 3473人阅读
记一次表空间碎片导致索引无法扩展问题
事情来由

某日业务反馈说应用程序报错,表无法入数,此时我却并未收到表空间告警。


数据库检查

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

表空间使用情况如下:

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

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


紧急处理方式

考虑优先保障业务使用,此时先对问题表空间加了4个数据文件,alert日志随即不再报错,应用入数也恢复正常。


表空间碎片检查

对表空间剩余空间进行分析后,发现除了新加的数据文件,其他数据文件的可分配区均小于1M……

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


解决办法

SR回复也为表空间碎片导致:

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


END


更多精彩干货分享

点击下方名片关注

IT那活儿

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129898.html

相关文章

  • 一次线上频繁FGC的事件和解决方式

    摘要:直接显示了一个疑似内存泄漏的问题。然后分析文件给出的信息,发现一个叫的类。文件里面说的内存泄漏的大概的意思就是说,这个类里面的存放的东西太多了,爆掉了。修改了代码将调用的地方改成了单例。修改完线上跑了一段日子,后来也没有出现过这样的问题。 问题描述:     早上去公司上班,突然就邮件一直报警,接口报异常,然后去查服务器的运行情况,发现java的cpu爆了.接着就开始排查问题 问题解决...

    Alliot 评论0 收藏0
  • 一次MongoDB高负载的性能优化

    摘要:年月日本文是关于记录某次游戏服务端的性能优化此处涉及的技术包括引擎随着游戏导入人数逐渐增加单个集合的文档数已经超过经常有玩家反馈说卡特别是在服务器迁移后从核降到核卡顿更严重了遂开始排查问题确认服务器压力首先使用命令查看总体情况此时占用不高 Last-Modified: 2019年6月13日11:08:19 本文是关于记录某次游戏服务端的性能优化, 此处涉及的技术包括: MongoDB...

    huhud 评论0 收藏0
  • 一次MongoDB高负载的性能优化

    摘要:年月日本文是关于记录某次游戏服务端的性能优化此处涉及的技术包括引擎随着游戏导入人数逐渐增加单个集合的文档数已经超过经常有玩家反馈说卡特别是在服务器迁移后从核降到核卡顿更严重了遂开始排查问题确认服务器压力首先使用命令查看总体情况此时占用不高 Last-Modified: 2019年6月13日11:08:19 本文是关于记录某次游戏服务端的性能优化, 此处涉及的技术包括: MongoDB...

    vibiu 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<