MySQL資料庫多源複製方案

來源:互聯網
上載者:User

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插入資料會報錯。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.