MySQL 5.7 MGR 叢集搭建

發表於2017-11-17

最近看了一下mysql5.7的MGR叢集挺不錯的,有單主和多主模式,於是乎搭建測試了一下效果還不錯,我指的不錯是搭建和維護方面都比較簡單。網上絕大多數都是單主模式,當然我這裡也是,為了加深印象,特意記錄一下搭建過程,等以後再去嘗試多主模式,相信大家現在資料庫的瓶頸基本都是在寫,讀寫分離雖然是一種可行的解決方案,但是如果資料量很大,寫一樣會有問題,雖然有些解決方案能部署多個主節點,能同時進行讀寫,但是腦裂又是一個嚴重的問題,所以這裡MGR叢集內建了自動化腦裂防護機制又得到了很多人的青睞,這裡MGR簡稱MySQL Group Replication是MySQL官方於2016年12月推出的一個全新的高可用與高擴充套件的解決方案。注意本文這裡不再闡述原理性的東西。
注意:我這裡採用編譯安裝的方式,如果想簡單直接yum安裝mysql5.7也行,mysql編譯安裝需要的磁碟空間還是比較大的,一般在7G左右,所以要提前規劃好,用三個節點比較接近生產環境,而且更直接清晰。
詳細部署資訊如下:

主機名 IP地址 安裝軟體 用途
apache 192.168.2.25 cmake、boost、mysql 節點
nginx 192.168.2.26 cmake、boost、mysql 節點
kibana 192.168.2.30 cmake、boost、mysql 節點

1、三臺機器準備工作

如果有則解除安裝即可!
寫入hosts檔案對映關係,叢集用得到
192.168.2.25    apache
192.168.2.26    nginx
192.168.2.30    kibana
2、安裝依賴包

3、安裝cmake,下載地址:https://cmake.org/download/

4、安裝boost,因為mysql5.7需要,注意這裡下載版本是1_59_0和mysql版本是對應的,如果你的MySQL版本和我的不一樣,不新增-DWITH_BOOST這個引數時它會報錯告訴你需要下載boost的哪個版本。

5、安裝mysql5.7.17及初始化操作

以上步驟在三臺機器上都需要執行
6、開始搭建MGR叢集環境,修改第一個節點的my.cnf檔案,內容如下:

啟動mysql服務
/etc/init.d/mysqld start

顯示結果如下:

如果出現ONLINE,說明正常,這就是主節點,再搭建兩個從節點。
7、第二個節點加入叢集,複製剛剛的第一個節點的主配置檔案my.cnf,只需要修改兩個地方就行,已經用紅色標註

第二個節點執行如下命令:

顯示結果如下:

同理第三個節點加入操作方法也和第二個節點一樣。
截圖如下:

查詢哪個是主節點:

從上圖來看很明顯apache主機是主節點。
測試步驟:
1、在主庫上建立一個庫,然後建立表,在兩個從庫上查詢資料是否同步?
2、兩個從庫只能執行查詢操作?
3、手動關閉主庫,確認兩個從庫其中一個是否會變成主庫?而且是MEMBER_ID第一個字母按優先順序排列的接管主庫?
日常維護步驟:
1、如果從庫某一節點關閉

2、如果所有的庫都關閉後,第一個庫作為主庫首先執行

剩下的庫直接執行即可!

3、如果主庫故障,會自動從兩個從庫選出一個主庫,主庫啟動後再次執行如下命令後會變成從庫

相關文章