實體機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>
> 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>
建立有複制權限的賬号:
> GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'repluser'@'192.168.255.%' IDENTIFIED BY 'replpass';
> 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>
在從節點:
使用有複制權限的使用者賬号連接配接至主節點,并啟動複制線程;
指定二進制日志檔案及位置:
> 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;
啟動從節點複制功能:
> 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>
在主節點建立新庫:
> 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後完成的:
設定從節點隻讀:
> 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,如需轉載請自行聯系原作者