首页/数据/数据库速查/Binlog 同步刷盘(sync_binlog)与崩溃安全组合
性能与调优57 条

Binlog 同步刷盘(sync_binlog)与崩溃安全组合

双 1 配置(innodb_flush_log_at_trx_commit=1 + sync_binlog=1)是崩溃不丢事务的标配;sync_binlog=0 交给 OS 刷盘,主库高并发时是隐藏瓶颈。

数据库速查数据更新于 2026-10-12
取值0=OS 决定;1=每次提交 fsync;N=每 N 个事务 fsync
默认MySQL 8.0 默认 sync_binlog=1
配套与 redo 的刷盘参数共同决定崩溃安全级别

查看与调整

查看与调整
SHOW VARIABLES LIKE 'sync_binlog';
SET GLOBAL sync_binlog = 1;
SHOW STATUS LIKE 'Binlog_cache%';
SHOW BINARY LOGS;
主从复制场景下 binlog 刷盘还影响复制延迟:主库提交速度被磁盘 fsync 决定时,先看 IO 延迟再谈调参。

易错点

  • 只改 redo 不看 binlog:崩溃后 binlog 与数据不一致,复制链路直接坏掉
  • binlog 与数据目录放同一块盘:刷盘竞争,提交延迟叠加

数据来源与参考

  • MySQL 8.0 Reference Manual: sync_binlog

相关工具

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