欢迎光临
我们一直在努力

主从复制之binlog_format

  binlog_format主要有三种格式:statement、row、mixed
binlog_format=statement
 
master写入执行的SQL语句到binlog中,从库读取这些SQL语句并执行,这种基于SQL语句的复制方式是MySQL最早支持的复制方式。

binlog_format=mixed
 
可以将master的binlog_format配置成同时使用基于statement和row两者的组合格式,它记录日志取决于修改的类型,选择合适的格式来记录该修改。默认情况下使用statement格式记录日志,特定情况下转换成基于row格式记录。

binlog_format=row
 
MySQL5.7.7版本之后,把binlog_format的默认值修改为了row,master将修改表的event写入binlog中,并且master将该binlog发送给slave,slave重放binlog中的event。基于row格式复制时最安全的复制,slave需要的行锁更少。缺点就是在row格式下binlog会记录更多的数据,因为都是event。但是在row格式下可以打开binlog_rows_query_log_events参数,binlog在记录events的同时,也会记录原始的SQL语句,方便以后的查询和审计。

  复制过程中建议使用row格式,其他格式可能会造成主从数据不一致的情况。

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。