手把手教你實現MySQL雙機同步複製

MySQL 防火牆 CentOS 操作系統 數據庫 Vi 啟迪雲Tuscloud 2019-04-06

第二十六期 啟迪雲解決方案架構師 蔣運龍

一、MySQL 雙機同步複製

MySQL 支持單向、異步複製,複製過程中一個服務器充當Master,而一個或多個其它服務器充當Slave。Master 將更新寫入二進制日誌文件,並維護日誌文件的一個索引以跟蹤日誌循環。當一個Slave 連到Master 時,它通知Master,Slave 在日誌中讀取的最後一次成功更新的位置。Slave 接收從那時起發生的任何更新,然後封鎖並等待Master 通知下一次更新。

兩臺分佈於異地的主機上安裝有MySQL 數據庫,兩臺服務器互為主備,當其中某個節點出現故障時,另一節點能接管服務器上的應用,這就需要兩節點的數據實時保持一致,使用MySQL 的同步功能實現雙機同步複製。

二、配置規範

根據需要在兩個節點上配置雙機互備,相關信息如下:


手把手教你實現MySQL雙機同步複製



三、環境確認

操作系統選擇CentOS 6.4 x86_64 版本,MySQL 版本為5.6.23。依以下步驟確認兩個節點的環境:

3.1. 內核及發佈版


手把手教你實現MySQL雙機同步複製

備註:若使用過yum 升級,系統將自動升級最新源的版本。

3.2. /etc/hosts

手把手教你實現MySQL雙機同步複製


3.3. 防火牆及 enforce配置

手把手教你實現MySQL雙機同步複製

備註:可修改/etc/selinux/config 中的 SELINUX=disabled,但不推薦停止防火牆

3.4. 確認MySQL

手把手教你實現MySQL雙機同步複製

四、MySQL雙節點同步設置

4.1. 創建日誌文件並授權

--分別在兩個節點運行

touch /var/lib/mysql/mysql-bin.log

chmod 755 /var/lib/mysql/mysql-bin.log

chown -R mysql:mysql /var/lib/mysql/mysql-bin.log

手把手教你實現MySQL雙機同步複製


4.2. 編輯/usr/my.cnf

--分別在兩個節點運行 vi /usr/my.cnf

[client]

default-character-set=utf8


[mysqld]

lower_case_table_names=1

default-storage-engine=INNODB

character-set-server=utf8

collation-server=utf8_general_ci

log-bin=/var/lib/mysql/mysql-bin.log

server-id=1 --此處 usdb6 設置為 1, 但usdb7必須將它改為2

binlog-ignore-db=information_schema,mysql,performance_schema

auto-increment-increment=2

auto-increment-offset=1--此處 usdb6 設置為 1, 但usdb7 必須將它改為 2

手把手教你實現MySQL雙機同步複製


4.3. 重啟MySQL

手把手教你實現MySQL雙機同步複製


4.4. 同步帳號的授權

master節點

grant replication slave on *.* to 'slave'@'172.168.56.7' identified by 'oracle';


手把手教你實現MySQL雙機同步複製


slave 節點

grant replication slave on *.* to 'slave'@'172.168.56.6' identified by 'oracle';

手把手教你實現MySQL雙機同步複製


4.5. 啟動 slave進程

master 節點

stop slave;

change master to master_host='172.168.56.7',master_user='slave',master_password='oracle'; start slave;

手把手教你實現MySQL雙機同步複製


slave 節點

stop slave;

change master to master_host='172.168.56.6',master_user='slave',master_password='oracle'; start slave;

手把手教你實現MySQL雙機同步複製


4.6. 驗證連接狀態

usdb06節點 show slave status\G;

手把手教你實現MySQL雙機同步複製


usdb07節點 show slave status\G;

手把手教你實現MySQL雙機同步複製


五、測試

5.1. usdb06節點建表

手把手教你實現MySQL雙機同步複製


在eps 庫下,創建測試表my-test:

usdb07 節點驗證

多出my-test 表,結構與master 節點上定義一致。如下:

手把手教你實現MySQL雙機同步複製


5.2. usdb07 節點DML

在usdb07節點DML並提交。

手把手教你實現MySQL雙機同步複製

usdb06 節點驗證, 查詢發現此兩條記錄存在。如下:

手把手教你實現MySQL雙機同步複製

通過上述驗證,表明usdb06、usdb07 兩個節點的雙向複製已成功。

相關推薦

推薦中...