多源复制拓扑需要至少配置两个源和一个副本。在这些教程中,我们假设您有两个来源source1
和
source2
以及一个副本
replicahost
。db1
副本从
source1
和db2
来自
的每个源复制一个数据库source2
。
多源复制拓扑中的源可以配置为使用基于 GTID 的复制或基于二进制日志位置的复制。有关如何使用基于 GTID 的复制配置源,请参阅第 16.1.3.4 节,“使用 GTID 设置复制”。有关如何使用基于文件位置的复制配置源 ,请参阅 第 16.1.2.1 节,“设置复制源配置” 。
多源复制拓扑中的副本需要
TABLE
连接元数据存储库和应用程序元数据存储库的存储库,由
master_info_repository
和
relay_log_info_repository
系统变量指定。多源复制与
FILE
存储库不兼容。
FILE
要修改正在使用复制元数据存储库的存储库
的现有副本
以使用存储库,您可以通过使用mysql客户端在副本上发出以下语句来
TABLE
动态转换现有存储库
:
mysql> STOP SLAVE;
mysql> SET GLOBAL master_info_repository = 'TABLE';
mysql> SET GLOBAL relay_log_info_repository = 'TABLE';
在副本可用于连接的所有复制源服务器上创建合适的用户帐户。您可以在所有来源上使用相同的帐户,也可以在每个来源上使用不同的帐户。如果您仅为复制目的创建帐户,则该帐户只需要REPLICATION
SLAVE
权限。例如,要设置一个
ted
可以从副本连接
的新用户,请replicahost
使用mysql
客户端在每个源上发出这些语句:
mysql> CREATE USER 'ted'@'replicahost' IDENTIFIED BY 'password';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'ted'@'replicahost';
有关详细信息,请参阅第 16.1.2.2 节,“为复制创建用户”。