Skip to content

sync_binlog

xiaoboluo768 edited this page Jun 14, 2020 · 2 revisions
  • 设置写了多少个binlog events之后把binlog日志刷新到磁盘
    • 默认为0,表示二进制日志的落盘操作由操作系统刷新,性能最好,但也是最不安全,发生意外崩溃时没有落盘的binlog日志将丢失
    • 为了确保binlog日志的安全,建议设置为1,这样在每次事务提交时就会调用fdatasync()实时把binlog日志刷新到磁盘,如果binlog支持group commit,则设置为1表示每个group commit提交时就会调用fdatasync()实时把binlog日志刷新到磁盘。注意:虽然设置为1是最安全的,但是在极端情况下,发生crash时还是有可能最后一个事务或者commit group的binlog日志。且设置为1是性能最差的值。
    • 另外,如果开启了innodb_support_xa=1参数,sync_binlog设置为1时,发生crash时,最后一个事务或commit group没有落盘会导致innodb存储引擎层直接回滚这个事务或commit group,如果最后一个事务或commit group已经落盘,则如果存储引擎层还没有提交则会重新在存储引擎层提交。
    • 全局变量,动态变量,整型值,最小值为0,默认值为0.

上一篇:relay_log_recovery | 下一篇:gtid_mode

Clone this wiki locally