標籤:
when?why? 用MySQL叢集?
減少資料中心結點壓力和大資料量處理(讀寫分離),採用把MySQL分布,一個或多個application對應一個MySQL資料庫。把幾個MySQL資料庫公用的資料做出共用資料,例如購物車,使用者物件等等,存在資料結點裡面。其他不共用的資料還維持在各自分布的MySQL資料庫本身中。
叢集MySQL中名稱概念
MySQL群集需要有一組電腦,每台電腦的角色可能是不一樣的。MySQL群集中有三種節點:管理節點、資料節點和SQL節點。群集中的某電腦可能是某一種節點,也可能是兩種或三種節點的集合。這三種節點只是在邏輯上的劃分,所以它們不一定和實體電腦是一一對應的關係。
管理節點(也可以稱管理伺服器)主要負責管理資料節點和SQL節點,還有群集設定檔和叢集記錄檔檔案。它監控其他節點的工作狀態,能夠啟動、關閉或重啟某個節點。其他節點從管理節點檢索配置資料,當資料節點有新事件時就把事件資訊發送給管理節點並寫入叢集記錄檔。
資料節點用於儲存資料。
SQL節點跟一般的MySQL伺服器是一樣的,我們可以通過它進行SQL操作。
詳細配置不在闡述網上很多參考部落格
註:與沒有使用 Cluster的MySQL相比,在MySQL Cluster內操作資料的方式沒有太大的區別。執行這類操作時應記住兩點:
1、 表必須用ENGINE=NDB或ENGINE=NDBCLUSTER選項建立,或用ALTER TABLE選項更改,以使用NDBCluster儲存引擎在 Cluster內複製它們。如果使用mysqldump的輸出從已有資料庫匯入表,可在文字編輯器中開啟SQL指令碼,並將該選項添加到任何錶建立語句,或用這類選項之一替換任何已有的ENGINE(或TYPE)選項。
2、 另外還請記住,每個NDB表必須有一個主鍵。如果在建立表時使用者未定義主鍵,NDBCluster儲存引擎將自動產生隱含的主鍵。(注釋:該隱含 鍵也將佔用空間,就像任何其他的表索引一樣。由於沒有足夠的記憶體來容納這些自動建立的鍵,出現問題並不罕見)。
當然我們搭建的MySQL叢集架構中,只存在一個管理節點,這樣搭建的叢集可以用如下所示的結構表示。
所示的單管理節點MySQL叢集存在當唯一的管理節點由於網路、斷電、壓力過大等各種原因宕機後(在叢集中切記單點故障的問題值得注意),資料節點和SQL節點將會各自為戰,成為一盤散沙。這樣搭建的MySQL叢集可用性較低,所以我們要將單管理節點叢集改變成如所示的多管理節點叢集。
在的多管理節點MySQL叢集中,由於管理節點存在多個,所以當其中的某一個管理節點出現宕機之後,其他的管理節點自動接過MySQL叢集的系統管理權限,保證MySQL叢集的正常運行。
總結
通過多個MySQL伺服器分配負載,從而最大程式地達到高效能,通過在不同位置儲存資料保證高可用性和冗餘。
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
叢集技術(二) MySQL叢集簡介與配置詳解