mysql 多源複製

  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 


wKiom1hes1yheb7WAABz0sBux8k144.png


上邊執行完之後,start slave;查看主從狀態

wKiom1hes76gFBRsAABQPtShTNk417.png

wKiom1hes6HD9RCOAABOdoCwmMw377.png

wKioL1hetBWwRABpAAAtUBz_w1E060.png


(2)測試主從

10.10.203.93 主庫

wKioL1hetNGyjJXgAAAWuISOTcw487.png

10.10.203.94 主庫

wKiom1hetNGAO3SkAAASjRJthXc507.png

10.10.203.102 從庫

wKioL1hetNLz_DUCAAA9acef00k076.png


(3)通過performance_schema監控主從狀態

wKioL1hetTbTUS5UAACT9vHbSc4399.png


(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;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章