MySQL5.7.6以后开始支持多源复制Multi-Source Replication,可以将多个主的库同步到一台slave上,从而增加从的利用率,出节省了机器,也可用于备份。首先设置master_info_repository和relay_log_info_repository两个参数,这存储同步信息的仓库,可以设置的值为"FILE"和"TABLE",
| 参数名 | 设置值 | 存储位置 |
| master_info_repository | FILE | master.info |
| master_info_repository | TABLE | MySQL.slave_master_info |
| relay_log_info_repository | FILE | relay-log.info |
| relay_log_info_repository | TABLE | mysql.slave_relay_log_info |
这2个参数都是可以动态调整的,要开启多源复制功能,必须将上面2个参数设置成"TABLE"动态调整命令为:STOP SLAVE;//如果主从复制正在进行,需要先停掉SET GLOBAL master_info_repository = "TABLE";SET GLOBAL relay_log_info_repository = "TABLE";设置同步的源:我这里设置的3个源,CHANGE MASTER TO MASTER_HOST="10.237.81.192",MASTER_USER="repl", MASTER_PORT=3306, MASTER_PASSWORD="repl4slave",MASTER_LOG_FILE="mysql-bin.000007", MASTER_LOG_POS=417 FOR CHANNEL "master_3306";CHANGE MASTER TO MASTER_HOST="10.237.81.192",MASTER_USER="repl", MASTER_PORT=3307, MASTER_PASSWORD="repl4slave",MASTER_LOG_FILE="mysql-bin.000004", MASTER_LOG_POS=9350223 FOR CHANNEL "master_3307";CHANGE MASTER TO MASTER_HOST="10.237.81.192",MASTER_USER="repl", MASTER_PORT=3308, MASTER_PASSWORD="repl4slave",MASTER_LOG_FILE="mysql-bin.000003", MASTER_LOG_POS=120 FOR CHANNEL "master_3308";设置完源后,启动复制START SLAVE; //启动所有线程所有通道的复制,常用START SLAVE SQL_THREAD; //启动所有通道的SQL_THREAD线程START SLAVE IO_THREAD; //启动所有通道的IO_THREAD线程START SLAVE FOR CHANNEL "master_3306";START SLAVE SQL_THREAD FOR CHANNEL "master_3306";START SLAVE IO_THREAD FOR CHANNEL "master_3306";停止复制命令也START类似,把START换成STOP;重置可以选择重置所有和重置单一通道:RESET SLAVE;RESET SLAVE FOR CHANNEL
CHANNELNAME;检查复制状态:SHOW SLAVE STATUSG对于多源复制的几点说明:1. 使用多源复制要避免源库是有同名 的库,这样在复制时会发生错误2. 对于mysql库,建议使用REPLICATE_IGNORE_DB将其屏蔽掉,在MySQL5.7里,已经支持动态对这些参数的操作CHANGE REPLICATION FILTER REPLICATE_IGNORE_DB = (mysql);在主库上对mysql库进行操作时,需要加use mysql,否则不会进行过滤3. 对于REPLICATE_DO_DB也一样,在操作时需要use db,否则不会进行同步4. 对于主从复制中出错,不管是基于binlog_position还是GTID,和普通一对一复制解决思路一样,只是在启动复制的时候单独启动这一通道,等这一通道复制没问题后,再启动其它通道。例master_3307出错,本例是基于binlog_position:STOP SLAVE;SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;START SLAVE FOR CHANNEL "master_3307";
本文永久更新链接地址