MySQL 9.0 发行说明
MySQL 9.0 中的多源复制使副本能够并行接收来自多个直接源的事务。在多源复制拓扑中,副本为它应该接收事务的每个源创建一个复制通道。有关复制通道功能的更多信息,请参见 第 19.2.2 节,“复制通道”。
您可能选择实现多源复制以实现以下目标
将多个服务器备份到单个服务器。
合并表分片。
将多个服务器上的数据合并到单个服务器。
多源复制在应用事务时不执行任何冲突检测或解决,这些任务将留给应用程序(如果需要)。
注意
多源副本上的每个通道必须从不同的源复制。您不能从单个副本到单个源设置多个复制通道。这是因为副本的服务器 ID 在复制拓扑中必须是唯一的。源仅通过服务器 ID 区分副本,而不是通过复制通道的名称,因此它无法识别来自相同副本的不同复制通道。
通过将系统变量 replica_parallel_workers
设置为大于 0 的值,还可以将多源副本设置为多线程副本。当您在多源副本上执行此操作时,副本上的每个通道都具有指定数量的应用器线程,以及一个协调器线程来管理它们。您不能为单个通道配置应用器线程的数量。
MySQL 9.0 还支持在多源副本的特定复制通道上使用复制过滤器。当多个源上存在相同的数据库或表,而您只需要副本从一个源复制它时,可以使用特定于通道的复制过滤器。对于基于 GTID 的复制,如果相同的事务可能来自多个源(例如,在菱形拓扑中),则必须确保所有通道上的过滤设置相同。有关更多信息,请参见 第 19.2.5.4 节,“基于复制通道的过滤器”。
本节提供了有关如何为多源复制配置源和副本、如何启动、停止和重置多源副本以及如何监控多源复制的教程。