mysql多源复制相同数据库名称_mysql数据库多源复制方案
概述
由于目前生產(chǎn)環(huán)境的mysql數(shù)據(jù)庫分布在兩臺服務(wù)器,若從單一主從來看,配置很簡單,但是需要將兩臺服務(wù)器的數(shù)據(jù)庫同步到一臺從庫上面,需要進(jìn)行更多配置和注意事項(xiàng)。多源復(fù)制有兩種方案,Binlog+Position和GTID,我們采用的是第一種方案Binlog+Position進(jìn)行的多源復(fù)制。
安裝mysql
在從庫的服務(wù)器上安裝mysql-5.7版本的,目前只有mysql5.7以上的版本才支持多源復(fù)制。
配置mysql
1、配置兩臺master的mysql
在my.cnf配置文件中增加或修改以下參數(shù):
server_id = 90
log_bin = master_1
log-bin-index = master_1.index
2、配置slave
在my.cnf配置文件中增加或修改以下參數(shù)
server_id = 92
relay_log = slave
relay_log_index = slave.index
master-info-repository = TABLE
relay-log-info-repository = TABLE
replicate_ignore_db = mysql
開始配置多源主從復(fù)制
1、設(shè)置master
在master新建slave復(fù)制用戶:
grant replication slave,replication client on *.* to repl@'192.168.2.92' identified by 'repl';
flush privileges;
分別進(jìn)入兩臺master的mysql終端執(zhí)行以下命令將mysql進(jìn)行鎖表操作
flush tables with read lock;
然后執(zhí)行show master status; 獲取master的log_bin_file的文件名和file_size。
分別導(dǎo)出兩臺master的mysql需要備份的數(shù)據(jù)庫的結(jié)構(gòu)和數(shù)據(jù)。
2、設(shè)置slave
登入slave的mysql終端,新建需要備份的數(shù)據(jù)庫(例:CREATE DATABASE `order_00` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;)
進(jìn)入各個數(shù)據(jù)庫導(dǎo)入master備份的數(shù)據(jù)庫的結(jié)構(gòu)和數(shù)據(jù)(所花時間長短取決于數(shù)據(jù)量的大小)。
在slave執(zhí)行完以上步驟后開始配置從復(fù)制,先執(zhí)行stop slave; 然后slave復(fù)制master配置如下:
change master to master_host='192.168.2.91',master_port=3507,master_user='repl',master_password='repl',master_log_file='master_91.000001',master_log_pos=376 FOR CHANNEL 'master_91';
注意:需要分別配置兩臺master,然后分別執(zhí)行。
以上配置命令執(zhí)行完成后,啟動slave執(zhí)行命令:start slave;
檢查slave有沒有啟動成功:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上兩項(xiàng)為yes代表配置多源主從復(fù)制成功。
最后分別在master庫執(zhí)行命令unlock tables;解除鎖表。
測試
分別在兩臺master中的數(shù)據(jù)庫中抽查幾個數(shù)據(jù)庫進(jìn)行新建數(shù)據(jù)表和數(shù)據(jù),對master的新建表數(shù)據(jù)進(jìn)行手動增刪改查,然后查詢slave有沒有進(jìn)行同步,若和master的數(shù)據(jù)一致,則表示多源主從復(fù)制成功,若沒有同步則不成功,不成功從第一步開始檢查。
注意事項(xiàng)
1、遇到Slave_IO_Running: connection的時候,檢查master和slave的防火墻,若防火墻沒有問題,檢查change master配置的時候IP,port,user,pwd等。
2、遇到Slave_IO_Running: Yes,Slave_SQL_Running: Yes都是yes卻數(shù)據(jù)不同步的時候檢查my.cnf配置文件中replicate-do-db參數(shù)。可以將其注釋或者分庫單獨(dú)寫。
3、一定要在master鎖表后才能進(jìn)行數(shù)據(jù)的導(dǎo)出,不然可能會導(dǎo)致主從數(shù)據(jù)不一致。
4、再所有步驟完成后一定要解除master的鎖表,不然master插入數(shù)據(jù)會報錯。
總結(jié)
以上是生活随笔為你收集整理的mysql多源复制相同数据库名称_mysql数据库多源复制方案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pmf文件「建议收藏」
- 下一篇: linux cmake编译源码,linu