16.1.5.1 配置多源复制

多源复制拓扑至少需要配置两个源和一个副本。在这些教程中,我们假设您有两个来源source1source2,以及一个副本replicahost。副本将从每个源复制一个数据库,db1source1db2source2

可以将多源复制拓扑中的源配置为使用基于 GTID 的复制或基于二进制日志位置的复制。有关如何使用基于 GTID 的复制配置源的信息,请参见第 16.1.3.4 节,“使用 GTID 设置复制”。有关如何使用基于文件位置的复制配置源的信息,请参见第 16.1.2.1 节,“设置复制源配置”

多源复制拓扑中的副本需要master_info_repositoryrelay_log_info_repository系统变量指定的源元数据存储库和副本元数据存储库的TABLE存储库。多源复制与FILE存储库不兼容。

若要将使用FILE存储库的现有副本用于复制元数据存储库以使用TABLE存储库,可以使用mysqlClient 端在副本上发出以下语句来动态转换现有复制存储库:

mysql> STOP SLAVE;
mysql> SET GLOBAL master_info_repository = 'TABLE';
mysql> SET GLOBAL relay_log_info_repository = 'TABLE';

在副本可用于连接的所有复制源服务器上创建合适的用户帐户。您可以在所有来源上使用相同的帐户,也可以在每个来源上使用不同的帐户。如果仅出于复制目的创建帐户,则该帐户仅需要REPLICATION SLAVE特权。例如,要设置可以从副本replicahost连接的新用户ted,请使用mysqlClient 端在每个源上发出以下语句:

mysql> CREATE USER 'ted'@'replicahost' IDENTIFIED BY 'password';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'ted'@'replicahost';

有关更多详细信息,请参见第 16.1.2.2 节,“创建要复制的用户”