云数据库 RDS-长事务导致UNDO增多引起磁盘空间满:原因分析

时间:2023-11-01 16:16:21

原因分析

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

排查思路:

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

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

  • 通过审计日志或慢日志,检查是否存在大事务一次性插入大量数据。
support.huaweicloud.com/trouble-rds/rds_12_0062.html