10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国高级主任)- 41.6 mb
PDF (A4)- 41.7 mb
手册页(TGZ)- 262.2 kb
手册页(Zip)- 372.3 kb
信息(Gzip)- 4.0 mb
信息(邮政编码)- 4.0 mb
本手册节选

18.5.1.4设置群组通信协议版本

从MySQL 8.0.16开始,组复制有了组通信协议的概念。可以显式地管理组复制通信协议版本,并将其设置为适应希望组支持的最老的MySQL Server版本。这使得不同MySQL Server版本的成员可以组成组,同时确保向后兼容。MySQL 5.7.14的版本允许消息压缩,MySQL 8.0.16的版本还允许消息碎片化。组的所有成员必须使用相同的通信协议版本,这样组成员可以使用不同的MySQL Server版本,但只发送所有组成员都能理解的消息。

版本X的MySQL服务器只能加入和到达在线当有新成员加入复制组时,复制组将检查现有成员发布的通信协议版本。如果加入的成员支持该版本,则它将加入该组并使用该组已宣布的通信协议,即使该成员支持额外的通信功能。如果加入的成员不支持该通信协议版本,将被逐出组。

如果两个成员试图在同一成员变更事件中加入,则只有当两个成员的通信协议版本已经与组的通信协议版本兼容时,他们才能加入。组中具有不同通信协议版本的成员必须以隔离方式加入。例如:

  • 一个MySQL Server 8.0.16实例可以成功加入一个使用5.7.24通信协议版本的组。

  • 一个MySQL Server 5.7.24实例无法成功加入使用8.0.16通信协议版本的组。

  • 两个MySQL Server 8.0.16实例不能同时加入一个使用5.7.24通信协议的组。

  • 两个MySQL Server 8.0.16实例可以同时加入一个使用8.0.16通信协议版本的组。

属性可以查看组正在使用的通信协议group_replication_get_communication_protocol ()函数,返回该组支持的最老的MySQL Server版本。该组的所有现有成员返回相同的通信协议版本。例如:

选择group_replication_get_communication_protocol ();+------------------------------------------------+ | group_replication_get_communication_protocol () | +------------------------------------------------+ | 8.0.16  | +------------------------------------------------+

注意group_replication_get_communication_protocol ()函数返回该组支持的最小MySQL版本号,该版本号可能与传递给group_replication_set_communication_protocol ()函数,以及安装在使用该函数的成员上的MySQL服务器版本。

如果需要更改组的通信协议版本,以便较早版本的成员可以加入,请使用group_replication_set_communication_protocol ()函数指定要允许的最老成员的MySQL服务器版本。这使得组在可能的情况下退回到兼容的通信协议版本。的GROUP_REPLICATION_ADMIN使用此功能需要特权,并且在发布声明时,所有现有的组成员必须在线,不损失多数。例如:

选择group_replication_set_communication_protocol(“5.7.25”);

如果将复制组的所有成员升级到新的MySQL Server版本,则组的通信协议版本不会自动升级到匹配。如果您不再需要在早期版本中支持成员,则可以使用group_replication_set_communication_protocol ()函数,将通信协议版本设置为已升级成员的新MySQL Server版本。例如:

选择group_replication_set_communication_protocol(“8.0.16”);

group_replication_set_communication_protocol ()函数作为组操作实现,因此它将同时在组的所有成员上执行。组操作开始缓冲消息,并等待已经在进行中的任何传出消息的交付完成,然后更改通信协议版本并发送缓冲的消息。更改通信协议版本后,任何时候如果有成员试图加入群组,群组成员将宣布新的协议版本。

当使用AdminAPI操作改变集群拓扑结构时,MySQL InnoDB集群自动透明地管理其成员的通信协议版本。InnoDB集群总是使用最新的通信协议版本,该版本被当前属于集群或加入集群的所有实例所支持。详细信息请参见InnoDB集群和组复制协议