小本本介绍
小本本是本际云服务器推荐网的小编,一直致力于学习和分享云服务器相关的知识和经验。

处理常见异常MySQL table xxx is full 不常见原因一例
某一天,在日常巡检过程中,收到某业务不可用的消息,发现大量业务表报tableXXXisfull的错误。根据经验,MySQL出现此错误的原因一般有两种:使用MEMORY存储引擎时,临时表大小设置过小导致;磁盘空间已满,清理即可。但是在排除这两种情况后,我们便开始怀疑是否存在更深层次的原因和bug。
在查找官方文档时,发现有一篇类似的问题文档,提示当磁盘空间还有较大盈余的时候,可能是ibdata1系统表空间文件无法继续扩展导致,此时无论是因为设置原因还是文件系统限制原因都会在SQL层抛出thetableXXXisfull的异常。
进一步检查后,发现系统表空间文件ibdata2已经达到最大限制5G,导致数据库无法正常运行。最终我们添加了一个新的共享表空间文件,使数据库恢复正常。
总结
为了避免类似的问题,我们需要注意Ibdata1系统表空间的设置,尤其是在设置了innodb_file_per_table的情况下。同时,对该表空间进行定期检查并进行合理设置,可以减少出现问题的频率。更多关于解决类似问题的方法和参考文档,可以参考如下链接:
- https://dev.mysql.com/doc/refman/5.7/en/full-table.html
- https://dev.mysql.com/doc/refman/5.7/en/table-size-limit.html
- https://dev.mysql.com/doc/refman/5.7/en/innodb-system-tablespace.html
- https://support.oracle.com/knowledge/Oracle%20Cloud/1458445_1.html
- https://support.oracle.com/knowledge/Oracle%20Cloud/1356573_1.html
以上是小本本的经验总结,希望对大家有所帮助。如需更多干货分享,欢迎关注IT那活儿。
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6016.html
