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