云数据库 RDS-MySQL主备复制延迟场景及解决方案:场景4:只读实例等待MDL锁
场景4:只读实例等待MDL锁
只读实例上往往有业务流量,如果存在只读长事务正在执行,会阻塞主实例同步过来的相应表的DDL操作,卡在了表MDL锁获取,进而阻塞所有同表的后续Binlog回放,导致复制延迟越来越大。
排查方法:
- 登录只读节点,使用如下命令,观察是否有长时间执行的事务。
select t.*,to_seconds(now())-to_seconds(t.trx_started) idle_time from INFORMATION_SCHEMA.INNODB_TRX t \G;
- 查看只读节点的MDL锁视图,观察是否有MDL锁冲突。
select * from information_schema.metadata_lock_info;
根据MDL锁视图中的线程ID,找到阻塞的session。更多信息,请参见MDL锁视图。
解决方法:
kill只读节点上阻塞DDL操作的长事务,或者在业务侧提交该长事务。
- 华为云数据库 RDS for MySQL常见故障排除_华为云
- 免费的MySQL数据库_免费云数据库_MySQL数据库基础知识_MySQL数据库免费下载
- 华为云数据库 RDS for PostgreSQL 实例规格介绍
- 云数据库RDS
- 云数据库 RDS for PostgreSQL只读实例_PG只读实例_华为云
- 云数据库 RDS 的实例类型有哪些
- RDS for MySQL数据库实例是什么_创建mysql实例步骤_如何创建RDS for MySQL数据库实例
- mysql数据库免费吗_mysql在线数据库_mysql数据库下载
- 免费云数据库MySQL_MySQL数据库免费_MySQL数据库是免费的吗
- 云数据库 RDS for MySQL版本升级_MySQL如何进行版本升级_华为云