天天看點

mysql簡單的主從複制

實體機win7,虛拟機為兩台centos7系統

實驗myslq資料庫簡單的主從複制:

主節點:192.168.255.2

從節點:192.168.255.3

使用rpm包安裝的mariadb-server

配置主節點:

]# vim /etc/my.cnf

<a href="http://s3.51cto.com/wyfs02/M00/82/89/wKioL1dYNKyxf3YqAAB0_9q2R_M135.png" target="_blank"></a>

]# systemctl start mariadb.service

確定主節點的iptables沒有阻斷3306端口;

<a href="http://s4.51cto.com/wyfs02/M01/82/8A/wKiom1dYNdGAed5EAAAYnV1dxbU991.png" target="_blank"></a>

&gt; SHOW GLOBAL VARIABLES LIKE '%log%';

确認二進制日志啟動;

<a href="http://s1.51cto.com/wyfs02/M01/82/89/wKioL1dYNVTjp1BlAAB4CCCYDQE826.png" target="_blank"></a>

檢視server id

<a href="http://s2.51cto.com/wyfs02/M02/82/89/wKioL1dYNdrR5q8mAAAcRm8FHnI906.png" target="_blank"></a>

建立有複制權限的賬号:

&gt; GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'repluser'@'192.168.255.%' IDENTIFIED BY 'replpass';

&gt; FLUSH PRIVILEGES;

檢視二進制日志并記錄日志位置:

<a href="http://s3.51cto.com/wyfs02/M01/82/89/wKioL1dYPuHxRdgLAAAV9hjAf7U017.png" target="_blank"></a>

配置從節點:

<a href="http://s2.51cto.com/wyfs02/M00/82/89/wKioL1dYN4_BFJS6AABMXMyI8FQ098.png" target="_blank"></a>

檢視中繼日志開啟;

<a href="http://s4.51cto.com/wyfs02/M01/82/89/wKioL1dYOC6z9R82AAB__GenPsA306.png" target="_blank"></a>

檢視唯一ID:

<a href="http://s1.51cto.com/wyfs02/M01/82/8A/wKiom1dYN2ewS8vMAAAmmYlLSUQ654.png" target="_blank"></a>

在從節點:

使用有複制權限的使用者賬号連接配接至主節點,并啟動複制線程;

指定二進制日志檔案及位置:

&gt; CHANGE MASTER TO MASTER_HOST='192.168.255.2',MASTER_USER='repluser',MA

STER_PASSWORD='replpass',MASTER_LOG_FILE='master-bin.000003',MASTER_LOG_POS=499;

啟動從節點複制功能:

&gt; START SLAVE;

檢視從節點狀态資訊:

<a href="http://s2.51cto.com/wyfs02/M02/82/89/wKioL1dYP4PgLc_8AAEDTX7l9Uo544.png" target="_blank"></a>

此時,主從複制配置完成;主節點再有任何寫操作事務日志記錄,都會同步到從節點上并在從節點上replay;

驗證主從複制:

例如:在主節點建立庫:

建立前主從節點中的庫資訊都是初始時預設存在的庫:

<a href="http://s3.51cto.com/wyfs02/M00/82/8B/wKiom1dYP-vTQlG5AAAUnCmkdXA822.png" target="_blank"></a>

在主節點建立新庫:

&gt; CREATE DATABASE mydb;

檢視狀态資訊:

<a href="http://s1.51cto.com/wyfs02/M00/82/89/wKioL1dYQa_Sf22jAAAWbTSCL6M875.png" target="_blank"></a>

二進制日志中的事務位置發生了變化,此時從節點應該已經發生了同步;

在從節點檢視:

<a href="http://s4.51cto.com/wyfs02/M00/82/89/wKioL1dYQUHD8N6PAAAjUVW5jmU366.png" target="_blank"></a>

檢視從節點狀态:

<a href="http://s1.51cto.com/wyfs02/M01/82/8B/wKiom1dYQeDCNlrHAACezrKRtOs690.png" target="_blank"></a>

此時,還要設定從伺服器不能由寫操作,因為隻有讓主節點接受寫操作,從節點隻負責讀請求,所有的寫操縱都必須從主節點複制到本地中繼日志中replay後完成的:

設定從節點隻讀:

&gt; SET GLOBAL read_only=ON;

<a href="http://s2.51cto.com/wyfs02/M01/82/89/wKioL1dYQ-GBFyY3AAAVBVuWx6E488.png" target="_blank"></a>

檢視檔案:

]# cat /var/lib/mysql/master.info

<a href="http://s1.51cto.com/wyfs02/M02/82/8B/wKiom1dYRFPAD5-4AAByfDpv12E455.png" target="_blank"></a>

此檔案就是為什麼能設定開機後自動實作啟動複制功能的重要檔案;

檢視從節點的中繼日志檔案:

<a href="http://s4.51cto.com/wyfs02/M02/82/89/wKioL1dYRx7SeqtAAABTfzvxUhs285.png" target="_blank"></a>

主節點:保證從節點及時得到更新

應該設定此項:

<a href="http://s5.51cto.com/wyfs02/M01/82/8B/wKiom1dYSCTwFKNgAACRyn2hyR4335.png" target="_blank"></a>

從節點:

relay_log也會在記憶體中先緩沖,讓每一次寫出都立即同步到磁盤上,資料安全性提升,但磁盤io壓力變大,性能會有所下降;

還要設定如下參數:

<a href="http://s3.51cto.com/wyfs02/M01/82/89/wKioL1dYSkKDkysVAABRqYVtPN4863.png" target="_blank"></a>

示範完成。

本文轉自 crystaleone 51CTO部落格,原文連結:http://blog.51cto.com/linsj/1787593,如需轉載請自行聯系原作者

繼續閱讀