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