您可以在组复制运行时配置在线组,方法是使用一组依赖于组操作协调器的函数。这些功能由 Group Replication 插件在 8.0.13 及更高版本中安装。本节介绍如何对运行组进行更改,以及可用的功能。
为了使协调器能够在运行组上配置组范围内的操作,所有成员都必须运行 MySQL 8.0.13 或更高版本并安装了这些功能。
要使用这些函数,请连接到运行组的成员并使用SELECT
语句调用函数。Group Replication 插件处理操作及其参数,协调器将其发送给所有成员,这些成员对您调用该函数的成员可见。如果动作被接受,所有成员执行动作并在完成时发送终止消息。一旦所有成员声明操作已完成,调用成员将结果返回给客户端。
配置整个组时,操作的分布式性质意味着它们与组复制插件的许多进程交互,因此您应该遵守以下几点:
您可以在任何地方发出配置操作。 如果你想让成员 A 成为新的主成员,你不需要在成员 A 上调用操作。所有操作都以协调的方式在所有组成员上发送和执行。此外,这种分布式执行操作有不同的后果:如果调用成员死亡,任何已经运行的配置进程将继续在其他成员上运行。万一调用成员死亡,您仍然可以使用监视功能来确保其他成员成功完成操作。
所有成员都必须在线。 为了简化迁移或选举过程并保证它们尽可能快,该组不得包含当前处于分布式恢复过程中的任何成员,否则配置操作将被您发出该语句的成员拒绝。
在配置更改期间,任何成员都不能加入组。 在协调配置更改期间尝试加入该组的任何成员都会离开该组并取消其加入过程。
一次只有一个配置。 正在执行配置更改的组不能接受任何其他组配置更改,因为并发配置操作可能导致成员分歧。
所有成员都必须运行 MySQL 8.0.13 或更高版本。 由于配置操作的分布式特性,所有成员都必须识别它们才能执行它们。因此,如果组中存在任何运行 MySQL Server 8.0.12 或更低版本的服务器,则该操作将被拒绝。