【问题标题】:group replication vs master-slave replication组复制与主从复制
【发布时间】:2019-03-31 03:53:32
【问题描述】:

我想知道我们如何区分服务器上的主从复制和组复制

辅助服务器会在 mysql 组复制中充当从属服务器吗?如果是,为什么在组复制成员上显示从属状态返回空集。

【问题讨论】:

    标签: master-slave mysql-group-replication


    【解决方案1】:
    1. 黑白组复制和主从复制的主要区别是组 复制有 自动故障转移机制。

    如果一个主节点宕机,那么从节点变为主节点 但是在主从复制中,我们必须手动进行。

    1. 是的,辅助服务器在 GR 中充当从属服务器,它用于只读目的。

    2. GR 有一个不同的命令来查看 GR 中的所有成员是否与主节点同步

      你可以在这里查看会员状态和会员角色

    mysql> SELECT * FROM performance_schema.replication_group_members;
    
    
    | CHANNEL_NAME                                      |MEMBER_ID|MEMBER_HOST|MEMBER_PORT | MEMBER_STATE|MEMBER_ROLE
      |group_replication_applier   | ce9be252 |  myhost1      |  24801         | **ONLINE      |Primary**
    
    |group_replication_applier     | jk45ty45 |  myhost2        | 24801      | **ONLINE      |Secondary**
    

    【讨论】:

    • 那为什么在show slave status中没有列为slave呢?
    • 显示从属状态仅用于传统复制(M->s)它不适用于组复制
    • 正如我所说,组复制有不同的命令来检查主要和次要状态,它们都是不同的拓扑。
    【解决方案2】:

    辅助节点在很多方面都类似于从节点,但它不会从复制通道接收数据。 所以不,你不会在 show slave status 上看到它的状态。

    您可以检查以下表格的状态:

    replication_group_member_stats

    或小组统计数据

    replication_group_members

    您可以在

    上查看详细信息

    https://dev.mysql.com/doc/refman/8.0/en/performance-schema-replication-tables.html

    【讨论】:

    • 需要一点说明,根据mysql doclinksecondary 将通过group_replication_applier 通道从组成员那里接收其数据,该通道是组复制的复制通道。
    • 文档没有确切地说,他们说 group_replication_applier 通道将用于应用数据,而不是该通道是该数据的来源。所以传统的复制通道作为接收器(IO 线程)和应用程序(SQL 线程)。在任何模块化应用程序中,组复制将重用一些服务器组件,因此它使用应用程序部分,您可以在性能模式表上检查应用程序状态的状态。但重点是:GR 组成员不是从属,因为它也可以做更新,所以在这里显示从属状态不太合适。
    • 小问,有没有可能在主从复制中使用相同的mysql服务器作为从服务器以及在组复制中使用组的成员?
    • 是的,你可以。服务器作为从属服务器接收的所有内容都将复制到组中。有一些限制,但如果您使用单主模式,则只有主可以是从属。
    猜你喜欢
    • 2013-04-05
    • 1970-01-01
    • 1970-01-01
    • 2014-07-07
    • 2012-09-14
    • 2012-10-16
    • 1970-01-01
    • 1970-01-01
    • 2018-05-26
    相关资源
    最近更新 更多