• MySQL主从复制的三种复制模式


    MySQL的复制是利用二进制日志binlog实现主从之间的数据同步。binlog日志的格式分为三种,使用参数binlog_format控制binlog的格式,该参数的不同值代表不同的日志格式,三种日志格式对应三种主从复制模式:
    语句复制模式(Statement Based Replication,SBR):基于实际执行的SQL语句的复制模式,该复制模式简单实现了数据同步,但在执行跨库更新等SQL语句时容易出现主从库的数据不一致问题。
    记录复制模式(Row Based Replication,RBR):基于修改的行的复制模式。不再简单记录SQL语句的执行顺序,而是逐行记录存储引擎的数据是如何变更的,主从库的数据一致性保障得到大幅度提升,是当前各生产环境常用的一种复制模式,该方式更安全。
    混合复制模式(Mixed Based Replication):简称MBR,根据SQL语句的不同来判断是否需要使用row格式,当出现可能造成主从库数据不一致的SQL语句时(例如:用户自定义函数、跨库SQL语句等),binlog自动转为row格式记录。
    查看binlog_format参数值:

    1. mysql> show global variables like 'binlog_format';
    2. +---------------+-------+
    3. | Variable_name | Value |
    4. +---------------+-------+
    5. | binlog_format | ROW   |
    6. +---------------+-------+
    7. 1 row in set (0.08 sec)
    8. mysql> 

    下面展示如何在mysql实例层设置该参数值:
    设置为statement格式:
    mysql> set global binlog_format=statement;
    Query OK, 0 rows affected (0.00 sec)
    设置为mixed格式:
    mysql> set global binlog_format=mixed;
    Query OK, 0 rows affected (0.00 sec)
    设置为row格式:
    mysql> set global binlog_format=row;
    Query OK, 0 rows affected (0.00 sec)
    注意:重启MYSQL实例后该设置将失效,永久设置则通过mysql参数文件进行修改。

  • 相关阅读:
    TDSQL携手金蝶云·苍穹,发布“国产数据库联合解决方案”
    ROS系统通过类定义实现数据处理并重新发布在另一话题
    25.K个一组翻转链表
    js基础笔记学习252事件委派3
    RabbitMQ
    教培机构如何抢占招生市场
    超详细 | 鲸鱼优化算法原理及其实现(Matlab/Python)
    数学建模资料分享
    带你了解MySQL数据库(六)
    第3章 数组及字符串操作
  • 原文地址:https://blog.csdn.net/jiaping0424/article/details/125514660