美文网首页
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