MGR 主备集群实现异步连接故障转移

这篇具有很好参考价值的文章主要介绍了MGR 主备集群实现异步连接故障转移。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.概述

MySQL 8.0.22 开始,支持异步连接故障切换机制,在现有主从复制连接失败后,自动建立到新主的异步复制连接。

MySQL 8.0.23 开始,异步连接故障切换机制还支持组复制拓扑,通过自动监视组成员身份的更改并区分主节点和从节点,在组复制主节点故障选出新主节点后,自动建立到新主的异步复制连接。

MySQL 8.0.26 开始,组复制可以设置组成员在特定情况下采取的操作,比如成员操作 mysql_disable_super_read_only_if_primary 当选择一个新的primary时,使处于单主模式的组保持超级只读模式,这样该组只接受复制的事务,不接受来自客户端的任何直接写操作。

MySQL 8.0.27 开始,异步连接故障切换机制还允许组复制作为副本,组的主节点发生故障时,新的主节点自动重新连接到源端。新增成员操作mysql_start_failover_channels_if_primary,默认情况下,此成员操作是启用的,当启用此成员动作时,在"CHANGE replication SOURCE TO"语句中为复制通道设置SOURCE_CONNECTION_AUTO_FAILOVER=1时,组复制主节点复制通道上的异步连接故障转移将激活。

2.架构

MGR B 作为 MGR A 的备份

本次测试通过搭建2套MGR作为主备集群,进行异步连接故障切换测试:

(1)当主集群MGR A 的主节点发生故障时,备集群MGR B的主节点能够实现异步故障转移,自动连接MGR A 的新主节点,主备集群同步不断开,实现数据正常同步。

(2)当备集群MGR B 的主节点发生故障时,MGR B 的新主节点能够自动启动复制通道,自动连接MGR A 主节点,主备集群同步不断开,实现数据正常同步。

(3)设置MGR B成员行为,使处于单主模式的组 MGR B 保持超级只读模式,这样该组只接受复制的事务,不接受来自客户端的任何直接写。

3.测试

本次测试基于 MySQL 8.0.31,搭建2套MGR集群(单主模式)

3.1 搭建MGR集群

MGR A:

mysql> select * from performance_schema.replication_group_members;
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST    | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION | MEMBER_COMMUNICATION_STACK |
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
| group_replication_applier | 44921323-bd95-11ed-8db5-00163e01f842 | 172.17.140.201 |        6002 | ONLINE       | SECONDARY   | 8.0.31         | XCom                       |
| group_replication_applier | 6f904c5c-bd95-11ed-bc79-00163e01f842 | 172.17.140.201 |        6003 | ONLINE       | SECONDARY   | 8.0.31         | XCom                       |
| group_replication_applier | c9e254d3-bd94-11ed-8ae9-00163e01f842 | 172.17.140.201 |        6001 | ONLINE       | PRIMARY     | 8.0.31         | XCom                       |
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
3 rows in set (0.01 sec)

MGR B:

select * from performance_schema.replication_group_members;
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST    | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION | MEMBER_COMMUNICATION_STACK |
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
| group_replication_applier | 190f4674-be4a-11ed-9452-00163ea5c598 | 172.17.140.252 |        6005 | ONLINE       | PRIMARY     | 8.0.31         | XCom                       |
| group_replication_applier | 3fa9e064-be4a-11ed-92c7-00163ea5c598 | 172.17.140.252 |        6006 | ONLINE       | SECONDARY   | 8.0.31         | XCom                       |
| group_replication_applier | 6a9691c6-be4a-11ed-8a32-00163ea5c598 | 172.17.140.252 |        6007 | ONLINE       | SECONDARY   | 8.0.31         | XCom                       |
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
3 rows in set (0.00 sec)

3.2 创建复制用户

在MGR A 的主节点创建用于复制的用户 repl_user

create user repl_user@'%' identified with mysql_native_password by 'abc123';
grant replication slave on *.* to repl_user@'%';
grant select on performance_schema.* to repl_user@'%';

注意:这里复制用户需要有 performance_schema 库的select权限,主要用于获取MGR A集群成员的状态,如果没有这个权限,将不能进行异步连接故障转移。

3.3停止MGR B的组复制

在MGR B的所有节点停止组复制,可先停止从节点,避免发生节点切换

mysql> stop group_replication;

注意:这里停止组复制是为了下一步创建异步复制通道,如果不停止复制通道,在运行正常的MGR B 的主节点执行创建复制通道的语句,会导致从节点退出组,报如下错误:

2023-03-09T14:38:51.933981+08:00 17887 [ERROR] [MY-013786] [Repl] Unable to set SOURCE_CONNECTION_AUTO_FAILOVER on a non-existent or misconfigured replication channel 'mgra_to_mgrb', please create the channel and rejoin the server to the group.
2023-03-09T14:38:51.934259+08:00 17887 [ERROR] [MY-013487] [Repl] Plugin group_replication reported: 'A message sent through the Group Replication message deliver service was not delivered successfully. The server will now leave the group. Try to add the server back to the group and check if the problem persists, or check previous messages in the log for hints of what could be the problem.'
2023-03-09T14:38:51.934704+08:00 17887 [ERROR] [MY-011712] [Repl] Plugin group_replication reported: 'The server was automatically set into read only mode after an error was detected.'
2023-03-09T14:38:55.166405+08:00 0 [System] [MY-011504] [Repl] Plugin group_replication reported: 'Group membership changed: This member has left the group.'

3.4创建异步复制通道

在MGR B的所有节点创建异步复制通道

change replication source to source_host='172.17.140.201',source_port=6001,source_user='repl_user',source_password='abc123',source_auto_position=1,source_connection_auto_failover=1,source_connect_retry=10,source_retry_count=3 for channel 'mgra_to_mgrb';
  • source_host:MGR A 主节点的IP
  • source_port:MGR A 主节点的端口
  • source_connection_auto_failover=1:表示开启自动故障转移功能。
  • source_connect_retry:指定复制副本在与源端的连接超时后重新连接尝试之间的间隔(秒)。
  • source_retry_count:设置复制副本在连接到源超时后进行的最大重新连接尝试次数。

3.5配置复制源

在MGR B 的主节点配置复制源

select asynchronous_connection_failover_add_managed('mgra_to_mgrb','GroupReplication','bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb','172.17.140.201',6001,'',90,50);
+-------------------------------------------------------------------------------------------------------------------------------------------------------+
| asynchronous_connection_failover_add_managed('mgra_to_mgrb','GroupReplication','bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb','172.17.140.201',6001,'',90,50) |
+-------------------------------------------------------------------------------------------------------------------------------------------------------+
| The UDF asynchronous_connection_failover_add_managed() executed successfully.                                                                         |
+-------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.02 sec)

语法:

asynchronous_connection_failover_add_managed(channel, managed_type, managed_name, host, port, network_namespace, primary_weight, secondary_weight)

参数:

  • channel:上面创建的复制通道名称;
  • managed_type:管理服务的类型,当前可传入的值必须是GroupReplication;
  • managed_name:管理组的识别符,即group_replication_group_name参数的值;
  • host:源端主机名;
  • port:源端端口号;
  • network_namespace:预留为将来使用,置空;
  • primary_weight:MGR主服务器的权重,值为1到100,值越大,优先级越高;
  • secondary_weight:MGR从服务器的权重,值为1到100,值越大,优先级越高;

3.6查看配置的用于异步连接切换的复制源

mysql> select * from performance_schema.replication_asynchronous_connection_failover;
+--------------+----------------+------+-------------------+--------+--------------------------------------+
| CHANNEL_NAME | HOST           | PORT | NETWORK_NAMESPACE | WEIGHT | MANAGED_NAME                         |
+--------------+----------------+------+-------------------+--------+--------------------------------------+
| mgra_to_mgrb | 172.17.140.201 | 6001 |                   |     50 | bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb |
+--------------+----------------+------+-------------------+--------+--------------------------------------+
1 row in set (0.00 sec)

这里只显示刚才配置的一个节点,启动异步复制通道后就能看到MGR A所有节点。

3.7启动 MGR B 组复制

在MGR B 的主节点重新引导启动组复制

# 选一个节点作为引导节点
set global group_replication_bootstrap_group=ON;
start group_replication;
set global group_replication_bootstrap_group=OFF;

# 其余节点启动组复制
start group_replication;

# 查看MGR B集群状态
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST    | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION | MEMBER_COMMUNICATION_STACK |
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
| group_replication_applier | 190f4674-be4a-11ed-9452-00163ea5c598 | 172.17.140.252 |        6005 | ONLINE       | PRIMARY     | 8.0.31         | XCom                       |
| group_replication_applier | 3fa9e064-be4a-11ed-92c7-00163ea5c598 | 172.17.140.252 |        6006 | ONLINE       | SECONDARY   | 8.0.31         | XCom                       |
| group_replication_applier | 6a9691c6-be4a-11ed-8a32-00163ea5c598 | 172.17.140.252 |        6007 | ONLINE       | SECONDARY   | 8.0.31         | XCom                       |
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
3 rows in set (0.00 sec)

3.8启动异步复制通道

在MGR B的主节点启动

mysql> start replica for channel 'mgra_to_mgrb';
mysql> show replica status\G
*************************** 1. row ***************************
             Replica_IO_State: Waiting for source to send event
                  Source_Host: 172.17.140.201
                  Source_User: repl_user
                  Source_Port: 6001
                Connect_Retry: 10
              Source_Log_File: binlog.000001
          Read_Source_Log_Pos: 2614
               Relay_Log_File: relaylog-mgra_to_mgrb.000002
                Relay_Log_Pos: 2816
        Relay_Source_Log_File: binlog.000001
           Replica_IO_Running: Yes
          Replica_SQL_Running: Yes
              Replicate_Do_DB: 

异步复制通道运行正常,至此MGR A 与 MGR B已建立主备关系,MGR A主节点与 MGR B 主节点建立异步复制通道。

3.9查看配置的用于异步连接切换的复制源

mysql> select * from performance_schema.replication_asynchronous_connection_failover;
+--------------+----------------+------+-------------------+--------+--------------------------------------+
| CHANNEL_NAME | HOST           | PORT | NETWORK_NAMESPACE | WEIGHT | MANAGED_NAME                         |
+--------------+----------------+------+-------------------+--------+--------------------------------------+
| mgra_to_mgrb | 172.17.140.201 | 6001 |                   |     90 | bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb |
| mgra_to_mgrb | 172.17.140.201 | 6002 |                   |     50 | bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb |
| mgra_to_mgrb | 172.17.140.201 | 6003 |                   |     50 | bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb |
+--------------+----------------+------+-------------------+--------+--------------------------------------+
3 rows in set (0.01 sec)

可以看到这里显示了 MGR A的所有节点信息,weight 最高的为主节点

3.10故障模拟:主集群MGR A 的主节点发生故障

(1)查看当前MGR A 信息

mysql> select * from performance_schema.replication_group_members;
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST    | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION | MEMBER_COMMUNICATION_STACK |
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
| group_replication_applier | 44921323-bd95-11ed-8db5-00163e01f842 | 172.17.140.201 |        6002 | ONLINE       | SECONDARY   | 8.0.31         | XCom                       |
| group_replication_applier | 6f904c5c-bd95-11ed-bc79-00163e01f842 | 172.17.140.201 |        6003 | ONLINE       | SECONDARY   | 8.0.31         | XCom                       |
| group_replication_applier | c9e254d3-bd94-11ed-8ae9-00163e01f842 | 172.17.140.201 |        6001 | ONLINE       | PRIMARY     | 8.0.31         | XCom                       |
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
3 rows in set (0.00 sec)

当前MGR A 主节点为 6001

(2)查看异步复制信息

登录MGR B 主节点查看

mysql> show replica status\G
*************************** 1. row ***************************
             Replica_IO_State: Waiting for source to send event
                  Source_Host: 172.17.140.201
                  Source_User: repl_user
                  Source_Port: 6001
                Connect_Retry: 10
              Source_Log_File: binlog.000001
          Read_Source_Log_Pos: 2614
               Relay_Log_File: relaylog-mgra_to_mgrb.000002
                Relay_Log_Pos: 2816
        Relay_Source_Log_File: binlog.000001
           Replica_IO_Running: Yes
          Replica_SQL_Running: Yes
              Replicate_Do_DB: 

当前MGR B主节点 连接的是 MGR A的主节点 6001

(3)模拟MGR A故障

在MGR A主节点执行切主命令,模拟MGR A主节点故障,将6002设置为新主节点

mysql> select group_replication_set_as_primary('44921323-bd95-11ed-8db5-00163e01f842');
+--------------------------------------------------------------------------+
| group_replication_set_as_primary('44921323-bd95-11ed-8db5-00163e01f842') |
+--------------------------------------------------------------------------+
| Primary server switched to: 44921323-bd95-11ed-8db5-00163e01f842         |
+--------------------------------------------------------------------------+
1 row in set (0.04 sec)
mysql> select * from performance_schema.replication_group_members;
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST    | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION | MEMBER_COMMUNICATION_STACK |
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
| group_replication_applier | 44921323-bd95-11ed-8db5-00163e01f842 | 172.17.140.201 |        6002 | ONLINE       | PRIMARY     | 8.0.31         | XCom                       |
| group_replication_applier | 6f904c5c-bd95-11ed-bc79-00163e01f842 | 172.17.140.201 |        6003 | ONLINE       | SECONDARY   | 8.0.31         | XCom                       |
| group_replication_applier | c9e254d3-bd94-11ed-8ae9-00163e01f842 | 172.17.140.201 |        6001 | ONLINE       | SECONDARY   | 8.0.31         | XCom                       |
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
3 rows in set (0.00 sec)

(4)查看异步复制信息

登录MGR B 主节点查看

mysql> show replica status\G
*************************** 1. row ***************************
             Replica_IO_State: Waiting for source to send event
                  Source_Host: 172.17.140.201
                  Source_User: repl_user
                  Source_Port: 6002
                Connect_Retry: 10
              Source_Log_File: binlog.000001
          Read_Source_Log_Pos: 3343
               Relay_Log_File: relaylog-mgra_to_mgrb.000003
                Relay_Log_Pos: 435
        Relay_Source_Log_File: binlog.000001
           Replica_IO_Running: Yes
          Replica_SQL_Running: Yes
              Replicate_Do_DB: 

可以看到MGR B主节点已经自动进行异步连接故障转移,与MGR A新主节点6002建立连接并且连接正常,在此过程中并不需要人为去操作。

3.11故障模拟:备集群MGR B 的主节点发生故障

(1)查看当前MGR B信息

mysql> select * from performance_schema.replication_group_members;
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST    | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION | MEMBER_COMMUNICATION_STACK |
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
| group_replication_applier | 190f4674-be4a-11ed-9452-00163ea5c598 | 172.17.140.252 |        6005 | ONLINE       | PRIMARY     | 8.0.31         | XCom                       |
| group_replication_applier | 3fa9e064-be4a-11ed-92c7-00163ea5c598 | 172.17.140.252 |        6006 | ONLINE       | SECONDARY   | 8.0.31         | XCom                       |
| group_replication_applier | 6a9691c6-be4a-11ed-8a32-00163ea5c598 | 172.17.140.252 |        6007 | ONLINE       | SECONDARY   | 8.0.31         | XCom                       |
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
3 rows in set (0.03 sec)

(2)查看异步复制信息

  • 登录MGR B主节点6005
mysql> show replica status\G
*************************** 1. row ***************************
             Replica_IO_State: Waiting for source to send event
                  Source_Host: 172.17.140.201
                  Source_User: repl_user
                  Source_Port: 6002
                Connect_Retry: 10
              Source_Log_File: binlog.000001
          Read_Source_Log_Pos: 3343
               Relay_Log_File: relaylog-mgra_to_mgrb.000003
                Relay_Log_Pos: 435
        Relay_Source_Log_File: binlog.000001
           Replica_IO_Running: Yes
          Replica_SQL_Running: Yes
              Replicate_Do_DB: 

当前MGR B主节点与MGR A新主节点6002 异步复制连接正常

  • 登录MGR B从节点6006
mysql> show replica status\G
*************************** 1. row ***************************
             Replica_IO_State: 
                  Source_Host: 172.17.140.201
                  Source_User: repl_user
                  Source_Port: 6001
                Connect_Retry: 10
              Source_Log_File: 
          Read_Source_Log_Pos: 4
               Relay_Log_File: relaylog-mgra_to_mgrb.000001
                Relay_Log_Pos: 4
        Relay_Source_Log_File: 
           Replica_IO_Running: No
          Replica_SQL_Running: No
              Replicate_Do_DB: 

(3)模拟MGR B主节点故障

这里不能通过对MGR B执行切主命令模拟故障,会报如下错误:

mysql> select group_replication_set_as_primary('3fa9e064-be4a-11ed-92c7-00163ea5c598');
ERROR 3910 (HY000): The function 'group_replication_set_as_primary' failed. There is a slave channel running in the group's current primary member.

我们通过停止组复制让MGR B主节点6005主动退出组,模拟故障

mysql> stop group_replication;
Query OK, 0 rows affected (11.67 sec)

(4)查看当前MGR B信息

mysql> select * from performance_schema.replication_group_members;
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST    | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION | MEMBER_COMMUNICATION_STACK |
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
| group_replication_applier | 3fa9e064-be4a-11ed-92c7-00163ea5c598 | 172.17.140.252 |        6006 | ONLINE       | PRIMARY     | 8.0.31         | XCom                       |
| group_replication_applier | 6a9691c6-be4a-11ed-8a32-00163ea5c598 | 172.17.140.252 |        6007 | ONLINE       | SECONDARY   | 8.0.31         | XCom                       |
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
2 rows in set (0.00 sec)

当前MGR B发生切主,新主节点为6006

(5)查看异步复制信息

登录MGR B新主节点6006

mysql> show replica status\G
*************************** 1. row ***************************
             Replica_IO_State: Waiting for source to send event
                  Source_Host: 172.17.140.201
                  Source_User: repl_user
                  Source_Port: 6002
                Connect_Retry: 10
              Source_Log_File: binlog.000001
          Read_Source_Log_Pos: 3343
               Relay_Log_File: relaylog-mgra_to_mgrb.000002
                Relay_Log_Pos: 395
        Relay_Source_Log_File: binlog.000001
           Replica_IO_Running: Yes
          Replica_SQL_Running: Yes
              Replicate_Do_DB: 

可以看到MGR B新主节点已经自动进行异步连接故障转移,与MGR A主节点6002建立连接并且连接正常,在此过程中并不需要人为去操作。

3.12 设置备集群MGR B为超级只读模式

配置MGR B集群所有节点为超级只读模式,避免执行误操作。默认情况下,MGR单主模式下主节点为读写模式,从节点为超级只读模式。

当一个组只是作为另一个组的备份的时候,只需要执行复制事物就可以了,不需要登录执行其他客户端事物,避免造成数据不一致的问题。因此我们可以通过 group_replication_disable_member_action() 函数设置成员操作,将备集群所有节点设置为超级只读模式,即使切主后选出新的主节点也要保持超级只读模式。

(1)查看MGR B当前成员操作

mysql> select * from replication_group_member_actions;
+------------------------------------------+------------------------+---------+----------+----------+----------------+
| name                                     | event                  | enabled | type     | priority | error_handling |
+------------------------------------------+------------------------+---------+----------+----------+----------------+
| mysql_disable_super_read_only_if_primary | AFTER_PRIMARY_ELECTION |       1 | INTERNAL |        1 | IGNORE         |
| mysql_start_failover_channels_if_primary | AFTER_PRIMARY_ELECTION |       1 | INTERNAL |       10 | CRITICAL       |
+------------------------------------------+------------------------+---------+----------+----------+----------------+
2 rows in set (0.02 sec)

(2)设置MGR B为超级只读模式

mysql> SELECT group_replication_disable_member_action("mysql_disable_super_read_only_if_primary", "AFTER_PRIMARY_ELECTION");
+---------------------------------------------------------------------------------------------------------------+
| group_replication_disable_member_action("mysql_disable_super_read_only_if_primary", "AFTER_PRIMARY_ELECTION") |
+---------------------------------------------------------------------------------------------------------------+
| OK                                                                                                            |
+---------------------------------------------------------------------------------------------------------------+
1 row in set (0.04 sec)

注意:这里执行完此函数后,不会对当前主节点产生影响,当发生切主选择出新主节点后,会将新主节点设置为超级只读模式。

(3)停止MGR B主节点

mysql> stop group_replication;
Query OK, 0 rows affected (28.54 sec)

mysql> select * from performance_schema.replication_group_members;
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST    | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION | MEMBER_COMMUNICATION_STACK |
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
| group_replication_applier | 190f4674-be4a-11ed-9452-00163ea5c598 | 172.17.140.252 |        6005 | ONLINE       | PRIMARY     | 8.0.31         | XCom                       |
| group_replication_applier | 6a9691c6-be4a-11ed-8a32-00163ea5c598 | 172.17.140.252 |        6007 | ONLINE       | SECONDARY   | 8.0.31         | XCom                       |
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
2 rows in set (0.01 sec)

MGR B新主节点为 6005

(4)查看MGR B新主节点是否进入超级只读模式

mysql> show variables like 'super_read_only';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| super_read_only | ON    |
+-----------------+-------+
1 row in set (0.05 sec)

mysql> create database tt;
ERROR 1290 (HY000): The MySQL server is running with the --super-read-only option so it cannot execute this statement

此时新主节点处于超级只读模式,不允许用户执行操作。

4.总结

通过异步连接故障切换机制,当复制连接出现问题时,不需要人工介入手动去重新建立复制连接,副本会自动进行异步故障转移与新的节点建立连接。

异步复制通道的建立只能在2个MGR集群的主节点上。

5.参考文档

  1. https://dev.mysql.com/doc/refman/8.0/en/replication-asynchronous-connection-failover.html

  2. https://dev.mysql.com/doc/refman/8.0/en/replication-asynchronous-connection-failover-replica.html

Enjoy GreatSQL 😃


Enjoy GreatSQL 😃

关于 GreatSQL

GreatSQL是由万里数据库维护的MySQL分支,专注于提升MGR可靠性及性能,支持InnoDB并行查询特性,是适用于金融级应用的MySQL分支版本。

相关链接: GreatSQL社区 Gitee GitHub Bilibili

GreatSQL社区:

社区博客有奖征稿详情:https://greatsql.cn/thread-100-1-1.html

MGR 主备集群实现异步连接故障转移

技术交流群:

微信:扫码添加GreatSQL社区助手微信好友,发送验证信息加群

MGR 主备集群实现异步连接故障转移文章来源地址https://www.toymoban.com/news/detail-599151.html

到了这里,关于MGR 主备集群实现异步连接故障转移的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【ElasticSearch】ES集群搭建、监控、故障转移

    单机的ES做数据存储与搜索,必然面临两个问题: 海量数据存储问题 单点故障问题 因此,考虑使用ES集群: 海量数据存储问题:将索引库从逻辑上拆分为N个分片(shard),存储到多个节点。如此,ES的存储能力就是所有节点存储能力的总和 单点故障问题:将分片数据 在不同

    2024年02月16日
    浏览(63)
  • ElasticSearch集群8.0版本搭建、故障转移

           ELasticsearch的集群是由多个节点组成的,通过cluster.name设置集群名称,并且用于区分其它的集群,每个节点通过node.name指定节点的名称。 在Elasticsearch中,节点的类型主要有4种: master节点 配置文件中node.master属性为true(默认为true),就有资格被选为master节点。master节

    2024年02月11日
    浏览(38)
  • (十二)大数据实战——hadoop集群之HDFS高可用自动故障转移

    本节内容主要介绍一下hadoop集群下实现HDFS高可用的自动故障转移,HDFS高可用的自动故障转移主要通过zookeeper实现故障的监控和主节点的切换。自动故障转移为 HDFS 部署增加了两个新组件:ZooKeeper 和 ZKFailoverController (ZKFC)进程。ZooKeeper 是维护少量协调数据,通知客户端这些

    2024年02月13日
    浏览(42)
  • 小白到运维工程师自学之路 第四十四集 (mariadb高可用集群故障转移)

            故障转移是指在集群中某个节点发生故障时,自动将服务转移到其他正常节点上的 过程。在MariaDB高可用集群中,通常使用主从复制的方式来实现故障转移。其中一个 节点被指定为主节点,负责处理所有的写操作和部分读操作,其他节点作为从节点,负 责复制主

    2024年02月11日
    浏览(47)
  • Keepalived入门指南:实现故障转移和负载均衡

    1. Keepalived概述 Keepalived是一个开源软件,用于实现高可用性和负载均衡。它通过使用VRRP协议来监测服务器的状态并在主服务器故障时自动进行故障转移。 2. 高可用性和负载均衡的重要性 介绍高可用性和负载均衡的概念,以及它们对于保障系统稳定性和提高性能的重要性。

    2024年02月12日
    浏览(40)
  • 【nginx实战】nginx正向代理、反向代理、由反向代理实现的负载均衡、故障转移详解

    本文将要讨论以下内容 正向代理与反向代理的基本概念 Nginx正向代理服务的配置指令、Nginx反向代理服务的配置指令 Nginx反向代理服务器的应用——负载均衡、故障转移 案例分析   正向代理的概念 局域网内的机器借助代理服务访问局域网外的网站,此代理服务器提供的服务

    2024年01月24日
    浏览(52)
  • WindowsServer2016配置故障转移群集

    准备工作 首先准备两台以上服务器的,并记录下IP地址和主机名。 IP: 172.31.217.67 主机名:WIN-1L7C679HLDE IP:172.31.211.29 主机名:WIN-93RVOMN5NN0 修改Host host文件地址 C:WindowsSystem32driversetc 修改后如下图所示。 添加DNS后缀 计算机属性更改设置更改其他。输入后缀后保存。 接着需要

    2024年02月04日
    浏览(38)
  • 图文结合丨GreatSQL MGR + ProxySQL集群搭建方案

    ProxySQL 是基于 MySQL 的一款开源的中间件的产品,是一个灵活的 MySQL 代理层,可以实现读写分离,支持 Query 路由功能,支持动态指定某个 SQL 进行缓存,支持动态加载(无需重启 ProxySQL 服务),故障切换和一些 SQL 的过滤功能。 GreatSQL 是适用于金融级应用的国内自主开源数据

    2024年02月08日
    浏览(45)
  • 【Kubernetes】 故障转移和自愈能力机制详解

    ubernetes是一个开源的容器编排平台,可以自动化管理容器的部署、伸缩和升级。它可以减轻开发者的负担,并提高应用程序的可靠性和可扩展性。Kubernetes 成功的一个原因是它的自动化故障转移和自愈能力,这些功能使它成为云原生应用开发的首选平台之一。 故障转移功能

    2024年02月01日
    浏览(52)
  • SQL Server2017搭建故障转移群集

    目录 一、搭建流程 二、创建域控 三、把集群规划的节点加域,并将域管理员设置为本地管理员 四、 安装故障转移群集功能 五、验证配置 六、创建群集 七、 以本地管理员账号安装.Net FrameworkSqlServer 八、以本地管理员账号安装SQL Server2017 九、修改SQL服务的启动账户并启动

    2023年04月18日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包