mysql5.7新特性多源複製很實用,方便對分庫環境進行彙總,集中備份和數據統計分析。
我的實驗環境3臺機器,mysql版本:5.7.16
10.10.203.102 從庫
10.10.203.93 主庫
10.10.203.94 主庫
操作步驟:
(1)當一個從庫是多源複製結構,那麼master_info和relay_log_info不能用file方式來存儲,必須使用table,它不支持file。
10.10.203.102 從庫上操作
在配置文件中新增:
[mysqld]
master_info_repository=TABLE
relay_log_info_repository=TABLE
在線動態修改:
STOP SLAVE;
SET GLOBAL master_info_repository = 'TABLE';
SET GLOBAL relay_log_info_repository = 'TABLE';
10.10.203.93 和 10.10.203.94 主庫上操作【複製採用的傳統方式,非GTID】
授權複製賬號
mysql>grant replication slave,replication client on *.* to pgm@'%' identified by 'pgmfetion';
10.10.203.93上操作,記錄file name和pos
/usr/local/mysql/bin/mysqldump -S /data/mysql/mysql9000/sock/mysql9000.sock -B kenney93 -R --single-transaction --master-data=2 >/tmp/kenney93.sql
[root@eut_config ~]# grep 'CHANGE MASTER' /tmp/kenney93.sql
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000004', MASTER_LOG_POS=2048;
10.10.203.94上操作,記錄file name和pos
/usr/local/mysql/bin/mysqldump -S /data/mysql/mysql9000/sock/mysql9000.sock -B kenney94 -R --single-transaction --master-data=2 >/tmp/kenney94.sql
[root@localhost ~]# grep 'CHANGE MASTER' /tmp/kenney94.sql
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=1533;
10.10.203.102上導入備份93,94的備份
[root@localhost ~]# /usr/local/mysql/bin/mysql -S /data/mysql/mysql9000/sock/mysql9000.sock </tmp/kenney94.sql
[root@localhost ~]# /usr/local/mysql/bin/mysql -S /data/mysql/mysql9000/sock/mysql9000.sock </tmp/kenney93.sql
上邊執行完之後,start slave;查看主從狀態
(2)測試主從
10.10.203.93 主庫
10.10.203.94 主庫
10.10.203.102 從庫
(3)通過performance_schema監控主從狀態
(4)備註
4.1 多源複製中GTID和傳統複製的操作命令
GTID方式的配置:
CHANGE MASTER TO MASTER_HOST='master1', MASTER_USER='rpl', MASTER_PORT=3451, MASTER_PASSWORD='', \
MASTER_AUTO_POSITION = 1 FOR CHANNEL 'master-1';
傳統方式的配置:
CHANGE MASTER TO MASTER_HOST='master1', MASTER_USER='rpl', MASTER_PORT=3451, MASTER_PASSWORD='' \
MASTER_LOG_FILE='master1-bin.000006', MASTER_LOG_POS=628 FOR CHANNEL 'master-1';
4.2 啓停方法
啓動所有渠道的線程
START/STOP SLAVE thread_types
啓動指定渠道的線程
START/STOP SLAVE thread_types FOR CHANNEL channel;
4.3 重置配置信息
重置所有渠道配置
RESET SLAVE;
重置指定渠道配置
RESET SLAVE FOR CHANNEL channel;