1、什麼是mysql叢集
資料更新使用讀已送出隔離級别(read-committedisolation)來保證所有節點資料的一緻性,使用兩階段送出機制(two-phasedcommit)保證所有節點都有相同的資料(如果任何一個寫操作失敗,則更新失敗)。
無共享的對等節點使得某台伺服器上的更新操作在其他伺服器上立即可見。傳播更新使用一種複雜的通信機制,這一機制專用來提供跨網絡的高吞吐量。
通過多個mysql伺服器配置設定負載,進而最大程式地達到高性能,通過在不同位置存儲資料保證高可用性和備援。
2、名稱概念
mysql叢集有如下三層:
其中mysql資料庫叢集主要包括如下三部分:
拓撲結構圖如下所示:
二、環境說明
1、系統環境
2、軟體環境
mysql叢集版本:
注:依據系統,在mysql官網自行下載下傳。
三、搭建叢集(linux環境)
1、安裝叢集版本
a、準備工作
不管是management server,還是data node、sql node,都需要先安裝mysql叢集版本,然後根據不用的配置來決定目前伺服器有哪幾個角色。
安裝之前準備好mysql使用者和mysql使用者組,
相關指令:
為了友善測試,确定相關機器的防火牆已關閉(或者設定防火牆這幾台機器之間的網絡連接配接是暢通無阻的),
b、安裝叢集版本
1.上傳安裝包至/usr/local目錄下,并解壓
2.重命名檔案夾
3.授權
4.切換mysql使用者
5.安裝mysql
注:所有伺服器上都需要執行上述操作來安裝mysql叢集版本。
2、叢集配置
a、管理節點
1.root使用者下,建立目錄和配置檔案
config.ini配置資訊如下:
2.授權
3.切換使用者
4.啟動管理服務
如果在啟動後過了幾天又添加了一個資料節點,這時修改了配置檔案啟動時就必須加上--initial參數,不然添加的節點不會作用在mysql cluster中。
b、資料節點
1.編輯/etc/my.cnf檔案
2.切換使用者
3.啟動資料節點服務
c、sql節點
1.編輯/etc/my.cnf檔案(資料節點和sql節點在統一伺服器時可省略)
2.複制mysqld到系統服務裡面去
4.啟動資料節點服務
d、完成效果
四、常用指令與問題整理
1) ndb_mgmd管理指令:/usr/local/mysql/bin/ndb_mgm 執行之後就是管理控制台了,裡面可以繼續輸入指令。(具體指令可以使用help檢視)
2) 停止叢集伺服器的指令:/usr/local/mysql/bin/ndb_mgm -e shutdown
如果叢集配置有更新了:rm /usr/local/mysql/mysql-cluster/ndb_1_config.bin.1
3) 停止sql節點的指令:/usr/local/mysql/bin/mysqladmin -uroot shutdown
4)使用需要注意如下兩點:
a.表必須用engine=ndb或engine=ndbcluster選項建立,或用alter table選項更改,以使用ndb cluster存儲引擎在 cluster内複制它們。如果使用mysqldump的輸出從已有資料庫導入表,可在文本編輯器中打開sql腳本,并将該選項添加到任何表建立語句,或 用這類選項之一替換任何已有的engine(或type)選項。
b.另外還請記住,每個ndb表必須有一個主鍵。如果在建立表時使用者未定義主鍵,ndb cluster存儲引擎将自動生成隐含的主鍵。(注釋:該隐含 鍵也将占用空間,就像任何其他的表索引一樣。由于沒有足夠的記憶體來容納這些自動建立的鍵,出現問題并不罕見)。
其他操作上沒有什麼差別!