适用场景

CDC 的价值是"准实时、低侵入"地把数据库变更送出去:同步到数仓、刷新缓存、驱动搜索索引。前提是位点管理与幂等处理要做好。

配置步骤(CDC 部署与位点管理)

# MySQL 侧
# my.cnf: log_bin=ON, binlog_format=ROW, server_id=1
# 创建账号
CREATE USER 'cdc'@'%' IDENTIFIED BY '***';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'cdc'@'%';

关键参数与建议

  • 前置条件:开启 binlog(ROW 模式)、复制账号权限最小化
  • 位点管理:记录消费位点,重启后不丢不重
  • 幂等:消费端按主键或唯一 ID 去重
  • 监控:延迟、位点落后、连接断开告警
  • 全量 + 增量:首次全量初始化,之后增量追平

容易踩的坑

  • binlog 未用 ROW 模式,无法解析行级变更
  • 复制账号权限过大或口令共用
  • 位点未持久化,重启后全量重放

验证与巡检

SHOW MASTER STATUS;
  • 巡检:binlog 配置正确、账号权限最小、位点持久化

小结

CDC 的验收标准:模拟主库写入,目标端秒级可见;断开重连后不丢数据不重复;延迟可监控有告警。

> 说明:文中命令为通用写法,不同型号/版本可能略有差异,落地前请对照设备实际版本的官方文档;带外管理与安全设备变更建议先在测试设备验证。