华为云云数据库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)
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家