binlog 是 MySQL Server 的日志,也叫做归档日志,是逻辑性的日志,例如: 对 user 表里面的 id = 1 的数据做了更新操作,更新后的值是123
bin log 的主要作用
- 复制,主从同步的时候,Master 将 bin log 文件发送到 slave ,然后 slave 使用 bin log 进行回放达到数据一致。
- 数据恢复,使用一些 mysql bin log 工具来进行数据恢复。
- 增量数据备份。
bin log 刷盘
在提交事务的时候,会将 redo log 写入磁盘,也会将 binlog 写入磁盘。 当这两个日志成功写入磁盘的时候,才可以标记事务提交成功。
binlog 也有对应的参数来设置刷盘策略 sync_binlog 。值可以是 0 或者 N 。 默认是 0 , 此时,日志写入 OS Cache 后,由操作系统决定什么时候刷入磁盘。 如果是写了值,例如 500 ,此时就是写入了500次日志后,就会调用系统 fsync 方法将缓存刷入磁盘。
配置
可以使用 sql 查看 bin log 的相关配置:
show variables like '%log_bin%';

