Mysql Cluster概述
MySql Cluster最顯著的優點就是高可用性,高即時性,高冗餘,擴充性強。
它允許在無共用的系統中部署"記憶體中"資料庫的Cluster.通過無共用體繫結構,系統能夠使用廉價的硬體.此外,由於每個組件有自己的記憶體和磁碟,所以不存在單點故障.
它由一組電腦構成,每台電腦上均運行者多種進程,包括mysql伺服器,NDB cluster的資料節點,管理服務啟,以及專門的資料訪問程式
所有的這些節點構成一個完整的mysql叢集體系.資料儲存在"NDB儲存伺服器"的儲存引擎中,表(結構)則儲存在"mysql伺服器"中.應用程式通過"mysql伺服器"訪問這些資料表,叢集管理伺服器通過管理工具(ndb_mgmd)來管理"NDB儲存伺服器"。
MySQL Cluster 的詳細介紹:請點這裡
MySQL Cluster 的:請點這裡
推薦閱讀:
MySQL Cluster 備份與恢複
MySQL Cluster安裝配置
MySQL Cluster 3台機器搭建叢集環境 DOC
MySQL Cluster7.2線上增加資料節點存在重大弊端
基本概念
"NDB"是一種"記憶體中"的儲存引擎,它具有可用性高和資料一致性好的特點.下面介紹mysql cluster 節點時,它表示進程.在單台電腦上可以有任意數目的節點.
管理節點(MGM):這類節點的作用是管理mysql cluster內的其他節點,如設定檔和cluster 日誌,啟動並停止節點,運行備份等.cluster中的每個節點從管理伺服器上檢索配置資料,並要求管理伺服器所在位置的方式.當資料節點內出現新的事件時,節點將關於這類事件的資訊傳輸到管理伺服器上,然後,又將這類資訊寫入cluster日誌。由於這類節點負責管理其他節點的配置,所以應在啟動其他節點之前首先啟動這類節點.MGM節點是用命令"ndb_mgmd"來啟動
資料節點(NDB):這類節點用於儲存cluster的資料.資料節點的數目與副本的數目相關,是片段的倍數.假設有2個副本,每個副本有2個片段,那麼就有4個資料節點.不過沒有必要設定多個副本.資料節點是用命令"ndbd"來啟動的.
SQL節點:這是用來訪問cluster資料的節點.對於MYSQL cluster來說,用戶端節點是使用NDB cluster儲存引擎的傳統Mysql伺服器.通常,sql節點使用將"ndbcluster"添加到"my.cnf"後使用"mysqld" 啟動
此外,可以有任意數目的cluster用戶端進程或應該程式.它們分為兩種類型,即標準mysql用戶端和管理用戶端.
標準mysql用戶端:能夠從php,perl,c,c++,java,python,ruby等編寫的現有mysql應用程式上訪問mysql cluster
管理用戶端:這類用戶端與管理伺服器相連,並提供了啟動和停止節點,啟動和停止訊息追蹤,顯示節點版本和狀態,啟動和停止備份等命令.
以下是MySQL Cluster 架構:
由於Mysql Cluster採用的是TCP/IP方式串連,並且節點之間的資料轉送沒有加密,最後使用單獨的子網裡.
下面來實施部署
為了方便 這裡我把管理節點,資料節點,sql節點放在一台機器上.
管理節點1 10.1.6.205
資料節點1 10.1.6.203
資料節點2 10.1.6.205
sql節點1 10.1.6.203
sql節點2 10.1.6.205
1.安裝(這裡安裝7.2.6版本)
下載mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz 二進位包(裡麵包含ndb,mysql)
root@10.1.6.205:~# tar -C /usr/local -xzvf mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz
root@10.1.6.205:/usr/local# ln -s /usr/local/mysql-cluster-gpl-7.2.8-linux2.6-i686 /usr/local/mysql
root@10.1.6.205:/usr/local# cd mysql
root@10.1.6.205:/usr/local/mysql# scripts/mysql_install_db --user=mysql
root@10.1.6.205:/usr/local/mysql# chown -R mysql:mysql /usr/local/mysql
同理10.1.6.203
2.配置SQL節點和儲存NDB節點
root@10.1.6.205:/usr/local/mysql# vim /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data/
user=mysql
port=3306
socket=/tmp/mysql.sock
ndbcluster
max_connect_errors=10000
ndb-connectstring=10.1.6.205
connect_timeout = 300
[mysql_cluster]
ndb-connectstring=10.1.6.205
同理10.1.6.203
3.組態管理節點
root@10.1.6.205:/usr/local/mysql# vim /opt/cluster/config.ini
[ndbd default]
NoOfReplicas=2
DataMemory=80M #分配data storage使用的記憶體 每個ndb佔用
IndexMemory=18M #分配index storage使用的記憶體 每個ndb佔用
[tcp default]
portnumber=2205 #ndb監聽連接埠
#設定管理節點
[ndb_mgmd]
NodeId=1
hostname=10.1.6.205
datadir=/opt/cluster #在MGM上儲存日誌的目錄
#設定儲存節點NDB1
[ndbd]
NodeId=2
hostname=10.1.6.203
datadir=/usr/local/mysql/data
#設定儲存節點NDB2
[ndbd]
NodeId=3
hostname=10.1.6.205
datadir=/usr/local/mysql/data
#設定SQL節點1
[mysqld]
NodeId=4
hostname=10.1.6.203
#設定SQL節點2
[mysqld]
NodeId=5
hostname=10.1.6.205
[mysqld] #運行任意ip串連
[mysqld]
繼續閱讀本文的精彩內容請看第2頁: