16.2.3 复制通道

在 MySQL 多源复制中,一个副本打开多个复制通道,每个复制源服务器一个。复制通道 table 示从源流向副本的事务路径。每个复制通道都有其自己的接收器(I/O)线程,一个或多个应用程序(SQL)线程以及中继日志。通道的接收器线程接收到来自源的事务时,会将它们添加到通道的中继日志文件中,并传递到通道的应用程序线程。这样可使每个通道独立运行。

本节介绍如何在复制拓扑中使用通道以及它们对单源复制的影响。有关为多源复制配置源和副本,启动,停止和重置多源副本以及监视多源复制的说明,请参阅第 16.1.5 节“ MySQL 多源复制”

在多源复制拓扑中,可以在一个副本上创建的最大通道数为 256.每个复制通道必须具有唯一的(非空)名称,如第 16.2.3.4 节“复制通道命名约定”中所述。启用多源复制时发出的错误代码和消息指定生成错误的通道。

Note

多源副本上的每个通道都必须从其他源复制。您不能设置从单个副本到单个源的多个复制通道。这是因为副本的服务器 ID 在复制拓扑中必须唯一。源仅通过服务器的 ID 来区分副本,而不通过复制通道的名称来区分,因此它无法识别同一副本中的不同复制通道。

通过将slave_parallel_workers系统变量设置为大于 0 的值,也可以将多源副本设置为多线程副本。在多源副本上执行此操作时,副本上的每个通道均具有指定的编号应用程序线程,再加上一个协调器线程来 Management 它们。您不能为单个通道配置应用程序线程数。

为了提供与以前版本的兼容性,MySQL 服务器在启动时自动创建一个默认通道,该通道的名称为空字符串("")。该 Channels 始终存在;它不能由用户创建或销毁。如果未创建其他通道(具有非空名称),则复制语句仅在默认通道上起作用,以便来自较旧副本的所有复制语句均按预期运行(请参阅第 16.2.3.2 节“与以前的复制语句的兼容性”。可以使用本节中描述的应用于复制通道的语句仅当至少有一个命名 Channels 时。