我们在 AWS RDS 服务上有一个 MySQL (5.6.41) 的副本读取数据库,在过去 2 年中运行良好,但在过去 3 周内突然开始出现非常不同的行为:它使用空间并且通常不会将其返回. 所以我必须购买更多的存储空间才能继续运行(你可以在屏幕截图中看到 2 个峰值)。
正如我所看到的,问题是一些守护进程在'mysql-bin-changelog.10xxxx'之前自动调用PURGE BINARY LOGS;但是那个日志“10xxxx”没有被删除,只是留在那里。我检查了 INNODB MONITOR OUTPUT,没有长时间的活动事务,
show processlist
没有显示任何内容,但是 ~100% CPU 已使用
空间没有回收!
SHOW BINARY LOGS;
显示 >5200 条记录,并且这个数字还在继续增长。
我试图关闭所有传入连接,甚至关闭“事件调度程序”和复制过程。画面仍然不健康:
CPU 只是停留在 >50%!并且数据库中没有会话(只是
rdsadmin@localhost
)
您能帮我解决原因以及如何恢复吗?因为现在我必须每 3-4 天购买约 50GB 的“无”。
现在回答:我们已经联系了 AWS Support(付费开发人员支持),但他们没有发现任何特别之处,并表示问题可能出在硬件方面。所以我们必须创建新的副本并将我们的自定义模式迁移到它,然后杀死有问题的副本。