首页/数据/数据工程与 ETL 速查/MySQL binlog 二进制日志基础
本包目录(311 条)
管道基础52 条Kafka64 条调度与编排40 条数仓建模52 条数据质量50 条
CDC 与同步53 条

MySQL binlog 二进制日志基础

binlog(二进制日志)是 MySQL Server 层记录的变更日志,按事件顺序追加数据修改与 DDL,是主从复制与 CDC 增量捕获的基础。用于 CDC 需要开启 log_bin、使用 ROW 格式,并为实例配置集群内唯一的 server_id。

定义Server 层顺序追加的变更日志
记录内容数据修改、DDL、事务边界(按格式不同记语句或行镜像)
前提log_bin 已开启;MySQL 8.0 默认启用
CDC 要求binlog_format=ROW,行镜像参数按需 FULL

确认当前配置

确认当前配置
SHOW VARIABLES LIKE 'log_bin';
SHOW VARIABLES LIKE 'binlog_format';
SHOW VARIABLES LIKE 'server_id';
SHOW VARIABLES LIKE 'binlog_row_image';
server_id 在复制拓扑内必须唯一:CDC 工具同样以从库身份接入,撞号会导致正常复制或采集异常。

易错点

  • 默认以为格式是 ROW:部分环境仍是 STATEMENT/MIXED,接入 CDC 前必须逐项确认参数
  • binlog 写入受 sync_binlog 影响,高写入实例开启后磁盘 IO 压力需要重新评估

数据来源与参考

  • MySQL 8.0 Reference Manual: The Binary Log
  • MySQL 8.0 Reference Manual: Replication
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌