在所有MGR(整个组)关闭后,我如何知道在组复制中首先启动哪个成员? …

2023年 9月 1日 28.8k 0

组复制不支持在组中的所有成员关闭后自动重新启动组。当关闭和重新启动整个组时,需要选择一个服务器成员来引导组。您必须使用引导标志(group _ replication _ bootstrap _ group选项)来指示成员创建一个组并充当初始种子服务器。

要重新启动组复制,您应该找到最新的成员。最简单的方法是比较所有成员上执行的GTIDs。最新的成员应该有一个在其他成员上执行的超级GTIDs集,建单的理解就是GTID最大的那个。

mysql> SELECT @@global.gtid_executed;
+----------------------------------------------+
| @@global.gtid_executed |
+----------------------------------------------+
| 550fa9ee-a1f8-4b6d-9bfe-c03c12cd1c72:1-14048 |
+----------------------------------------------+
1 row in set (0.00 sec)

gtid_executed:这个是已经执行过的所有的事物的GTID的一个系列串。
gtid_purged:这个序列是指我们在binary log删除的事物的GTID的序列号。

要启动组复制,请指示最新的服务器成员引导该组,然后启动组复制。该引导只能由一台服务器完成,即启动组的服务器,并且只能启动一次。这就是引导配置选项的值未保存在配置文件中的原因。(组复制引导组选项的默认值为OFF。)如果它保存在配置文件中,服务器在重新启动时会自动引导第二个同名的组。引导两次将导致两个不同的组具有相同的名称。同样的道理也适用于这个选项设置为on的插件的停止和重启。

SET GLOBAL group_replication_bootstrap_group=ON;
START GROUP_REPLICATION;
SET GLOBAL group_replication_bootstrap_group=OFF;

一旦START GROUP_REPLICATION语句返回,该组就已启动。引导组后,需要将组复制引导组选项设置为关闭。然后,为该组的其余成员启动组复制。

相关文章

pt-kill工具的使用
pt-ioprofile工具包的使用
数据库管理-第216期 Oracle的高可用-01(20240703)
DBMS_REPAIR EXAMPLE SCRIPT WITH PARTITION
数据库事务的四大特性: ACID 
使用BBED修复损坏的SYSTEM文件头

发布评论