multi source replication mysql_MySQL 5.7多源复制(Multi-Source Replication)
MySQL5.7.6以后開始支持多源復制Multi-Source Replication,可以將多個主的庫同步到一臺slave上,從而增加從的利用率,出節(jié)省了機器,也可用于備份。
首先設(shè)置master_info_repository和relay_log_info_repository兩個參數(shù),這存儲同步信息的倉庫,可以設(shè)置的值為'FILE'和'TABLE',
參數(shù)名
設(shè)置值
存儲位置
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個參數(shù)都是可以動態(tài)調(diào)整的,要開啟多源復制功能,必須將上面2個參數(shù)設(shè)置成'TABLE'
動態(tài)調(diào)整命令為:
STOP SLAVE;//如果主從復制正在進行,需要先停掉
SET GLOBAL master_info_repository = 'TABLE';
SET GLOBAL relay_log_info_repository = 'TABLE';
設(shè)置同步的源:我這里設(shè)置的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';
設(shè)置完源后,啟動復制
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;
檢查復制狀態(tài):
SHOW SLAVE STATUS\G
對于多源復制的幾點說明:
1.? ? ? 使用多源復制要避免源庫是有同名 的庫,這樣在復制時會發(fā)生錯誤
2.? ? ? 對于mysql庫,建議使用REPLICATE_IGNORE_DB將其屏蔽掉,在MySQL5.7里,已經(jīng)支持動態(tài)對這些參數(shù)的操作
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';
總結(jié)
以上是生活随笔為你收集整理的multi source replication mysql_MySQL 5.7多源复制(Multi-Source Replication)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: aoltray.exe进程信息查询 ao
- 下一篇: c语言函数大全语法下载,C语言函数大全(