Documentation Home
MySQL 外壳 8.0  / 第 7 章 MySQL InnoDB 集群  / 7.5 配置InnoDB集群  /  7.5.6 配置并行复制Applier

7.5.6 配置并行复制Applier

从版本 8.0.23 开始,实例支持并启用并行复制应用程序线程,有时称为多线程副本。并行使用多个副本应用程序线程可以提高复制应用程序和增量恢复的吞吐量。

这意味着在运行 8.0.23 及更高版本的实例上,必须配置以下系统变量:

默认情况下,applier 线程数(由 slave_parallel_workers系统变量配置)设置为 4。

升级运行 8.0.23 之前版本的 MySQL 服务器和 MySQL Shell 的集群时,实例未配置为使用并行复制应用程序。如果未启用并行应用程序,则 Cluster.status() 操作的输出会在字段中显示一条消息 instanceErrors,例如:

...
"instanceErrors": [
	"NOTE: The required parallel-appliers settings are not enabled on 
		the instance. Use dba.configureInstance() to fix it."
...

在这种情况下,您应该重新配置您的实例,以便它们使用并行复制应用程序。对于属于 InnoDB Cluster 的每个实例,通过发出更新配置dba.configureInstance(instance)。请注意,通常dba.configureInstance()在将实例添加到集群之前使用,但在这种特殊情况下,无需删除实例,而是在实例在线时进行配置更改。

有关并行复制应用程序的信息显示在 Cluster.status(extended=1) 操作的输出中。例如,如果启用了并行复制应用程序,则topology实例的部分输出会显示 下的线程数 applierWorkerThreads。为并行复制应用程序配置的系统变量显示在 Cluster.options() 操作的输出中。

您可以使用选项配置实例用于并行复制应用程序的线程数 applierWorkerThreads,默认为 4 个线程。该选项接受 0 到 1024 范围内的整数,并且只能与 dba.configureInstance()and dba.configureReplicaSetInstance()运算一起使用。例如,要使用 8 个线程,请发出:

mysql-js> dba.configureInstance(instance, {applierWorkerThreads: 8, restart: true})
笔记

并行复制应用程序使用的线程数的更改仅在实例重新启动并重新加入集群后发生。

要禁用并行复制应用程序,请将 applierWorkerThreads选项设置为 0。