首页/数据/数据工程与 ETL 速查/CDC 快照一致性:位点与导出衔接
CDC 与同步53 条

CDC 快照一致性:位点与导出衔接

初始快照必须与增量衔接:先在源端取得位点(或 GTID),再导出数据,随后从该位点继续消费,中间不能丢窗口。常用做法有一致性事务导出(mysqldump --single-transaction)、短暂锁表、在从库执行快照;Debezium 等工具内置了快照与位点的衔接逻辑。

一致性导出并携带位点

一致性导出并携带位点
# 8.0.26+ 使用 --source-data(旧名 --master-data):导出文件写入位点注释
mysqldump --single-transaction --source-data=2 --databases app > app_snapshot.sql
# 打开文件头部可看到 CHANGE REPLICATION SOURCE TO ... 位点
无锁导出InnoDB + --single-transaction 保证一致性读
锁表快照FTWRL 阻塞写入,仅适合可停写窗口
从库快照在从库导出,承接复制延迟
工具衔接Debezium initial 快照自带位点对齐
--single-transaction 只对 InnoDB 事务表保证一致性;MyISAM 等非事务表要评估锁表或避开时段。

易错点

  • 先导出数据再取位点,导出期间的变更两边都漏掉
  • 业务高峰期做锁表快照,线上写入被阻塞触发超时

数据来源与参考

  • MySQL 8.0 Reference Manual: mysqldump --source-data
  • Debezium 官方文档(snapshot 机制)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌