標籤:mysql的簡單主從複製
物理機win7,虛擬機器為兩台centos7系統
實驗myslq資料庫簡單的主從複製:
主節點:192.168.255.2
從節點:192.168.255.3
使用rpm包安裝的mariadb-server
配置主節點:
]# vim /etc/my.cnf
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/82/89/wKioL1dYNKyxf3YqAAB0_9q2R_M135.png" title="1.png" alt="wKioL1dYNKyxf3YqAAB0_9q2R_M135.png" />
]# systemctl start mariadb.service
確保主節點的iptables沒有阻斷3306連接埠;
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M01/82/8A/wKiom1dYNdGAed5EAAAYnV1dxbU991.png" title="5.png" alt="wKiom1dYNdGAed5EAAAYnV1dxbU991.png" />
> SHOW GLOBAL VARIABLES LIKE ‘%log%‘;
確認二進位日誌啟動;
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M01/82/89/wKioL1dYNVTjp1BlAAB4CCCYDQE826.png" title="2.png" alt="wKioL1dYNVTjp1BlAAB4CCCYDQE826.png" />
查看server id
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M02/82/89/wKioL1dYNdrR5q8mAAAcRm8FHnI906.png" title="4.png" alt="wKioL1dYNdrR5q8mAAAcRm8FHnI906.png" />
建立有複製許可權的帳號:
> GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO ‘repluser‘@‘192.168.255.%‘ IDENTIFIED BY ‘replpass‘;
> FLUSH PRIVILEGES;
查看二進位日誌並記錄日誌位置:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/82/89/wKioL1dYPuHxRdgLAAAV9hjAf7U017.png" title="3.png" alt="wKioL1dYPuHxRdgLAAAV9hjAf7U017.png" />
配置從節點:
]# vim /etc/my.cnf
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M00/82/89/wKioL1dYN4_BFJS6AABMXMyI8FQ098.png" title="6.png" alt="wKioL1dYN4_BFJS6AABMXMyI8FQ098.png" />
查看中繼日誌開啟;
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M01/82/89/wKioL1dYOC6z9R82AAB__GenPsA306.png" title="7.png" alt="wKioL1dYOC6z9R82AAB__GenPsA306.png" />
查看唯一ID:
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M01/82/8A/wKiom1dYN2ewS8vMAAAmmYlLSUQ654.png" title="8.png" alt="wKiom1dYN2ewS8vMAAAmmYlLSUQ654.png" />
在從節點:
使用有複製許可權的使用者帳號串連至主節點,並啟動複製線程;
指定二進位記錄檔及位置:
> 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;
查看從節點狀態資訊:
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M02/82/89/wKioL1dYP4PgLc_8AAEDTX7l9Uo544.png" title="9.png" width="737" height="810" border="0" hspace="0" vspace="0" style="width:737px;height:810px;" alt="wKioL1dYP4PgLc_8AAEDTX7l9Uo544.png" />
此時,主從複製配置完成;主節點再有任何寫操作交易記錄記錄,都會同步到從節點上並在從節點上replay;
驗證主從複製:
例如:在主節點建立庫:
建立前主從節點中的庫資訊都是初始時預設存在的庫:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/82/8B/wKiom1dYP-vTQlG5AAAUnCmkdXA822.png" title="10.png" alt="wKiom1dYP-vTQlG5AAAUnCmkdXA822.png" />
在主節點建立新庫:
> CREATE DATABASE mydb;
查看狀態資訊:
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/82/89/wKioL1dYQa_Sf22jAAAWbTSCL6M875.png" title="12.png" width="703" height="133" border="0" hspace="0" vspace="0" style="width:703px;height:133px;" alt="wKioL1dYQa_Sf22jAAAWbTSCL6M875.png" />
二進位日誌中的事務位置發生了變化,此時從節點應該已經發生了同步;
在從節點查看:
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/82/89/wKioL1dYQUHD8N6PAAAjUVW5jmU366.png" title="11.png" alt="wKioL1dYQUHD8N6PAAAjUVW5jmU366.png" />
查看從節點狀態:
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M01/82/8B/wKiom1dYQeDCNlrHAACezrKRtOs690.png" title="13.png" alt="wKiom1dYQeDCNlrHAACezrKRtOs690.png" />
此時,還要設定從伺服器不能由寫操作,因為只有讓主節點接受寫操作,從節點只負責讀請求,所有的寫操縱都必須從主節點複製到本地中繼日誌中replay後完成的:
設定從節點唯讀:
> SET GLOBAL read_only=ON;
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M01/82/89/wKioL1dYQ-GBFyY3AAAVBVuWx6E488.png" title="14.png" alt="wKioL1dYQ-GBFyY3AAAVBVuWx6E488.png" />
在從節點:
查看檔案:
]# cat /var/lib/mysql/master.info
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M02/82/8B/wKiom1dYRFPAD5-4AAByfDpv12E455.png" title="15.png" alt="wKiom1dYRFPAD5-4AAByfDpv12E455.png" />
此檔案就是為什麼能設定開機後自動實現啟動複製功能的重要檔案;
查看從節點的中繼記錄檔:
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/82/89/wKioL1dYRx7SeqtAAABTfzvxUhs285.png" title="16.png" alt="wKioL1dYRx7SeqtAAABTfzvxUhs285.png" />
主節點:保證從節點及時得到更新
應該設定此項:
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M01/82/8B/wKiom1dYSCTwFKNgAACRyn2hyR4335.png" title="17.png" alt="wKiom1dYSCTwFKNgAACRyn2hyR4335.png" />
從節點:
relay_log也會在記憶體中先緩衝,讓每一次寫出都立即同步到磁碟上,資料安全性提升,但磁碟io壓力變大,效能會有所下降;
還要設定如下參數:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/82/89/wKioL1dYSkKDkysVAABRqYVtPN4863.png" title="18.png" alt="wKioL1dYSkKDkysVAABRqYVtPN4863.png" />
示範完成。
mysql簡單的主從複製