binlog 是 MySQL Server 的日志,也叫做归档日志,是逻辑性的日志,例如: 对 user 表里面的 id = 1 的数据做了更新操作,更新后的值是123

bin log 的主要作用


  1. 复制,主从同步的时候,Master 将 bin log 文件发送到 slave ,然后 slave 使用 bin log 进行回放达到数据一致。
  2. 数据恢复,使用一些 mysql bin log 工具来进行数据恢复。
  3. 增量数据备份。

bin log 刷盘


在提交事务的时候,会将 redo log 写入磁盘,也会将 binlog 写入磁盘。 当这两个日志成功写入磁盘的时候,才可以标记事务提交成功。

binlog 也有对应的参数来设置刷盘策略 sync_binlog 。值可以是 0 或者 N 。 默认是 0 , 此时,日志写入 OS Cache 后,由操作系统决定什么时候刷入磁盘。 如果是写了值,例如 500 ,此时就是写入了500次日志后,就会调用系统 fsync 方法将缓存刷入磁盘。

配置


可以使用 sql 查看 bin log 的相关配置:

  1. show variables like '%log_bin%';

image.png