云数据库 RDS-MySQL主备复制延迟场景及解决方案:场景4:只读实例等待MDL锁

时间:2024-05-31 11:47:03

场景4:只读实例等待MDL锁

只读实例上往往有业务流量,如果存在只读长事务正在执行,会阻塞主实例同步过来的相应表的DDL操作,卡在了表MDL锁获取,进而阻塞所有同表的后续Binlog回放,导致复制延迟越来越大。

排查方法:

  1. 登录只读节点,使用如下命令,观察是否有长时间执行的事务。

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

  2. 查看只读节点的MDL锁视图,观察是否有MDL锁冲突。

    select * from information_schema.metadata_lock_info;

    根据MDL锁视图中的线程ID,找到阻塞的session。更多信息,请参见MDL锁视图

解决方法:

kill只读节点上阻塞DDL操作的长事务,或者在业务侧提交该长事务。

support.huaweicloud.com/trouble-rds/rds_12_0038.html