美文网首页
MySQL binlog 和主从复制

MySQL binlog 和主从复制

作者: 走在钢铁森林中 | 来源:发表于2020-05-20 14:48 被阅读0次

项目的架构是:生产的mysql库有一个备库,备库不对外提供服务,唯一的目的是备份生产mysql库的数据

MySQL主从复制需要开启binlog日志,一共有三种模式

binlog模式

STATEMENT模式

  • 基于SQL语句的复制(statement-based replication, SBR)
  • 每条修改操作SQL语句都会记录到binlog
  • 优点是日志量比较少,缺点是会导致主从不一致(如sleep()函数, last_insert_id(),以及user-defined functions(udf)等会出现问题)

ROW模式

  • 基于行的复制(row-based replication, RBR)
  • 逐行记录每条被修改的数据
  • 优点:STATEMENT模式数据不一致的问题得到解决
  • 确点:会产生大量的日志,尤其是alter table的时候会让日志暴涨。

MIXED模式

  • 混合模式复制(mixed-based replication, MBR)
  • 优先使用STATEMENT模式,某些特殊情况,使用ROW模式
  • 集合了两种模式的优点,规避了缺点

binlog配置参考

#设置日志格式
binlog_format = mixed
#设置日志路径,注意路经需要mysql用户有权限写
log-bin = /data/mysql/logs/mysql-bin.log
#设置binlog清理时间
expire_logs_days = 7
#binlog每个日志文件大小
max_binlog_size = 100m
#binlog缓存大小
binlog_cache_size = 4m
#最大binlog缓存大小
max_binlog_cache_size = 512m

主从复制图解

image.png

相关文章

网友评论

      本文标题:MySQL binlog 和主从复制

      本文链接:https://www.haomeiwen.com/subject/ovzgohtx.html