将基于GTID的主服务器添加到多源复制从服务器
这些步骤假定您已使用为主服务器上的事务启用了GTID gtid_mode=ON
,创建了复制用户,确保从服务器正在使用TABLE
基于复制的存储库,并在适当的情况下为从服务器提供了来自主服务器的数据。
使用该CHANGE MASTER TO
语句为复制从属服务器上的每个主服务器配置一个复制通道(请参见“复制通道”)。该FOR CHANNEL
子句用于指定通道。对于基于GTID的复制,GTID自动定位用于与主数据库同步(请参见“ GTID自动定位”)。MASTER_AUTO_POSITION
设置该选项以指定使用自动定位。
例如,要向复制从属服务器添加master1
并master2
作为主服务器,请使用mysql客户端CHANGE MASTER TO
在从属服务器上两次发出该语句,如下所示:
mysql>CHANGE MASTER TO MASTER_HOST ="master1",MASTER_USER ="ted", \MASTER_PASSWORD ="password",MASTER_AUTO_POSITION =1FOR CHANNEL "master_1"; mysql>CHANGE MASTER TO MASTER_HOST ="master2",MASTER_USER ="ted", \MASTER_PASSWORD ="password",MASTER_AUTO_POSITION =1FOR CHANNEL "master_2";
有关该CHANGE MASTER TO
语句的完整语法和其他可用选项的信息,请参见“ CHANGE MASTER TO语句”。
为了使复制从服务器只复制数据库db1
的master1
,只有数据库db2
的master2
,使用MySQL的客户端发出的CHANGE REPLICATION FILTER
每个通道,类似这样的语句:
mysql>CHANGE REPLICATION FILTER REPLICATE_WILD_DO_TABLE = ('db1.%')FOR CHANNEL "master_1"; mysql>CHANGE REPLICATION FILTER REPLICATE_WILD_DO_TABLE = ('db2.%')FOR CHANNEL "master_2";
有关该CHANGE REPLICATION FILTER
语句的完整语法和其他可用选项的信息,请参见“ CHANGE REPLICATION FILTER语句”。