命令行格式 | --sync-binlog=# |
系统变量 | sync_binlog |
作用域 | Global |
动态 | 是 |
Type | Integer |
缺省值 | 1 |
最小值 | 0 |
最大值 | 4294967295 |
控制Mysql服务器将二进制日志同步到磁盘的频率。
- sync_binlog=0:禁用MYSQL服务器将二进制日志同步到磁盘。相反,MySQL服务器依赖操作系统不时地将二进制日志刷新到磁盘上,就像处理其它文件一样。这样设置提供了最好的性能,但是在断电或者系统崩溃的情况下,服务器可能已经提交了事务,但是该事务的二进制文件却没有同步到二进制日志文件中。
- sync_binlog=1: 启用在事务提交之前将二进制日志文件同步到磁盘。这是最安全的设置,但是由于磁盘写操作的增加,可能会对性能产生负面影响。在电源故障或操作系统崩溃的情况下,从二进制日志中丢失的事务只处于准备阶段,并没有提交。这允许自动恢复例行程序回滚事务,从而保证了不会从二进制日志中丢失事务。
- sync_binlog=N, 其中N不是0或1:收集N个二进制日志提交分组后,将二进制日志同步到磁盘。在断电或操作系统崩溃的情况下,服务器可能已经提交了尚未刷新到二进制日志的事务。由于磁盘写操作的增加,此设置可能会对性能产生负面影响。值越高,性能越好,但数据丢失的风险越大。
为了在事务中使用InnoDB的复制设置中获得最大的持久性和一致性,请使用以下设置: