华为云云数据库rds长事务导致UNDO增多引起磁盘空间满_云淘科技

场景描述

实例触发磁盘满告警,一段时间后磁盘满告警自动恢复。

原因分析

由于MVCC机制,MySQL更新表中数据时会生成undo日志,会占用磁盘空间;所有会话的相关事务提交或回滚后,undo日志会被清理,导致磁盘空间下降。
当存在长事务时,长事务只要不提交,其他会话对相关表更新生成的undo就无法清理,导致磁盘空间一直上涨。

排查思路:

通过如下语句,检查是否有长时间不提交事务。

select t.*,to_seconds(now())-to_seconds(t.trx_started) idle_time from INFORMATION_SCHEMA.INNODB_TRX t \G;

通过审计日志或慢日志,检查是否存在大事务一次性插入大量数据。

解决方案

kill相应的长事务。
建议业务侧避免在磁盘空间紧张时,执行长事务不提交,或执行大量插入。
提前进行磁盘扩容。

父主题: 性能资源类

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家