zoukankan      html  css  js  c++  java
  • MySQL组复制MGR(四)-- 单主模式与多主模式

    (一)概述
    组复制可以运行在单主模式下,也可以运行在多主模式下,默认为单主模式。组的不同成员不能部署在不同模式下,要切换模式,需要使用不同配置重新启动组而不是单个server。

    相关参数如下:

    # 该参数决定启用单主模式(on)还是多主模式(off),默认单主模式
    loose-group_replication_single_primary_mode=off             
    
    # 在多主模式下部署时,将检查语句以确保它们与该模式兼容。在多主模式下部署组复制时,将进行以下检查:
    #    --如果事务是在SERIALIZABLE隔离级别下执行的,则在与组同步时,其提交将失败。
    #    --如果事务是针对具有具有级联约束的外键的表执行的,则该事务在与组同步时将无法提交。
    #  这些检查可以通过设置选项来禁用 group_replication_enforce_update_everywhere_checks 到FALSE。在单主要模式下部署时,此选项必须设置为FALSE。
    loose-group_replication_enforce_update_everywhere_checks=on


    (二)单主模式
    在单主模式下,组中只有一个节点可执行写操作,其它节点被自动设置为只读模式,主服务器通常是用于引导的第一个Server,后续所有其它的server设为只读。

    在单主模式下,当主节点失败时,自动的选举机制将选择新的主节点,选举方法如下:

    • 如果所有节点数据库版本均相同,则选择参数“group_replication_member_weight”值最大的节点作为主节点,如果多个服务器具有相同的“group_replication_member_weight”,则根据数据库实例的server_uuid排序,并选择第一个服务器。
    • 如果节点数据库版本不一样,则选举过程会受影响。不过版本不一样的情况较少,这里不做讨论。

    Snipaste_2020-07-25_13-34-37

                                              图.单主模式下的主节点选举

    对于单主模式,如果要找出哪个是主数据库,可以使用下面的方法:

    mysql> SHOW STATUS LIKE 'group_replication_primary_member'


    (二)多主模式

    多主模式每个节点都可以写数据,因此不存在节点选举,如果组成员发生故障,业务切换节点即可。

    Snipaste_2020-07-25_13-48-10

                                         图.多主模式下的业务切换

  • 相关阅读:
    Linux下的lds链接脚本简介(一)
    linux字符驱动之poll机制按键驱动
    Linux中断处理驱动程序编写
    基于Hexo + Git + Nginx的博客发布
    Visual Studio2012打开时弹出“遇到异常:这可能是由某个扩展导致的”错误的解决办法
    卫星轨道和两行数据TLE
    C#基础系列:开发自己的窗体设计器(PropertyGrid显示中文属性名)
    C# WinForm PropertyGrid用法
    C#基础系列:实现自己的ORM(反射以及Attribute在ORM中的应用)
    [转]计算机视觉、机器学习相关领域论文和源代码大集合
  • 原文地址:https://www.cnblogs.com/lijiaman/p/13376519.html
Copyright © 2011-2022 走看看