首页/数据/数据库速查/DDL 对复制链路的影响
主从复制与高可用53 条

DDL 对复制链路的影响

DDL 在复制中始终按语句重放:从库执行期间拿独占 MDL,同名表上的长查询会把 applier 卡住;在线 DDL(INPLACE)也会在收尾阶段等锁。

数据库速查数据更新于 2026-10-12

观察与准备

观察与准备
-- 源端执行前检查:
SHOW PROCESSLIST;   -- 有无长事务/长查询
SHOW VARIABLES LIKE 'lock_wait_timeout';
-- 从库观察 applier 是否被 MDL 卡住
SELECT * FROM performance_schema.metadata_locks WHERE OBJECT_NAME='orders';
影响面从库如有长查询/备份任务,DDL 会等待并积压 relay
建议DDL 窗口通知从库使用方;大表 DDL 走 gh-ost/pt-osc 时同样评估
8.0原子 DDL 保证 DDL 整体成功/失败,减少主从不一致窗口
从库上跑重查询建议限时(MAX_EXECUTION_TIME),避免把 DDL 锁成事故。

易错点

  • 从库挂着小时级报表查询时做 DDL:链路整体卡住,业务与复制一起受影响
  • 跳过 DDL 想「小改表没关系」:结构漂移下 ROW 重放直接错列

数据来源与参考

  • MySQL 8.0 Reference Manual: Atomic DDL
  • MySQL 8.0 Reference Manual: Metadata Locking

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌