mysql盘满了怎么办 mysql磁盘满了如何处理

技术分享 | MySQL中MGR中SECONDARY节点磁盘满,导致mysqld进程被OOM Killed 在对MySQL 8.0.26 vs GreatSQL 8.0.25的对比测试过程中,有一个环节是人为制造磁盘满的场景,看看MGR是否还能正常响应请求 。
在实测过程中,最后发现磁盘满的那个节点,持续时间足够久后,会因为内存消耗过大而最终被OS给OOM Kill 。
这个问题我已报告BUG(#104979),下面是该过程的详细记录 。
首先,直接利用dd复制空文件填满磁盘 。
disk full报告过程及何时被oom killed
【mysql盘满了怎么办 mysql磁盘满了如何处理】 来看下MySQL 8.0.26遇到disk full时日志都输出哪些内容:
从disk full时刻开始 , 大约过了2.5小时,mysqld进程内存消耗持续上升,最终引发oom kill
在这期间某个时刻抓到的待认证事务堆积,在被oom kill前实际不止这么多:
关注mysqld进程内存消耗变化
下面是mysqld进程内存消耗变化情况
OS层oom-killer相关日志:
GreatSQL 8.0.25测试过程
作为对比,我用GreatSQL 8.0.25也做了同样的测试 。
从日志详情中可以看到,当磁盘空间满了之后,GreatSQL会将那个节点主动退出集群,对整个集群的影响非常小 。
此外 , 从集群退出后,也不会再接收认证事务了,所以也没发生内存持续暴涨最终被oom killed的情况,实际观察过程中发现内存反倒还下降了
这样对比来看,GreatSQL的可靠性还真是可以的,官方的MySQL MGR的可靠性还有待进一步加强呀 。
Enjoy GreatSQL :)
mysql硬盘满怎么办可以通过查看mysql进程来实现 。进入mysql命令行客户端,选择数据库后,执行show processlist命令: 多刷新几次 , 可以看到最后执行的SQL语句,以此判断什么查询在占用资源 。
mysql临时表空间满了的原因mysql临时表空间满了的原因如下 。
1、根据官网文档的解释,在正常关闭或初始化中止时,将删除临时表空间,并在每次启动服务器时重新创建 , 重启能够释放空间的原因在于正常关闭数据库,临时表空间就被删除了,重新启动后重新创建 , 也就是重启引发了临时表空间的重建,重新初始化,所以 , 重建后的大小为12M 。
2、对临时表空间的大小进行限制,允许自动增长,但最大容量有上限 。
mysql盘满了怎么办的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于mysql磁盘满了如何处理、mysql盘满了怎么办的信息别忘了在本站进行查找喔 。

    推荐阅读