MySQL Cluster搭建實施步驟

 

MySQL Cluster介紹

MySQL Cluster是一種技術,該技術容許在無共享的系統中部署內存中數據庫的Cluster。經過無共享體系結構,系統可以使用廉價的硬件,並且對軟硬件無特殊要求。此外,因爲每一個組件有本身的內存和磁盤,不存在單點故障。 html

MySQL Cluster分爲SQL節點、數據節點、管理節點(MySQL Cluster提供了API供內部調用,外部應用程序能夠經過API藉口訪問任意層方法)   node

SQL節點提供用戶SQL指令請求,解析、鏈接管理,query優化和響、cache管理等、數據mergesort,裁剪等功能,當SQL節點啓動時,將向管理節點同步架構信息,用以數據查詢路由SQL節點做爲查詢入口,須要消耗大量cpu及內存資源,可以使用分佈式管理節點,並在SQL節點外封裝一層請求分發及HA控制機制可解決單點及性能問題,其提供了線性擴展功能 mysql

數據節點提供數據存取,持久化、API數據存取訪問等功能數據節點使用分片及多份數據存儲,至少存放2份,數據存放於內存中,根據管理節點的規則進行持久化,做爲數據存取地,須要大量內存支持 sql

管理節點維護着節點活動信息,以及實施數據的備份和恢復等。管理節點會獲取整個cluster環境中節點的狀態和錯誤信息,並將各個cluster 集羣中各個節點的信息反饋給整個集羣中其餘的全部節點,這對於SQL節點的數據路由規則相當重要,當節擴容時,數據將會被rebuild管理節點維護着全局規則信息,當節點發生故障時,將會發生故障通告 shell

在整個Cluster體系中,任何一個組建都支持動態擴展,線性擴展,提供了高可用,高性能的解決方案當新增數據節點時,須要重構存取路徑信息,對管理節點將形成數據重構壓力,該操做建議在非業務高峯時進行 數據庫

Cluster使用自動鍵值識別數據分片方案,用戶無需關心數據切片方案(在5.1及之後提供了分區鍵規則),透明實現分佈式數據庫,數據分片規則 根據主鍵、惟一索引自動行標識rowid完成,再集羣個數進行分佈,其訪問數據猶如RAID訪問機制同樣,能並行從各個節點抽取數據,散列數據,當使用非主鍵或分區鍵訪問時,將致使全部簇節點掃描,影響性能Cluster面對的核心挑戰 架構

下圖是官方文檔中給出的標準的MySQL Cluster的架構。   tcp

MySQL Cluster搭建實施步驟

2.1 搭建環境

操做系統:SUSE11  分佈式

MySQL版本:MySQL Cluster  7.1.24  ide

SQL Node 主機名 SUSE150       IP地址 192.168.85.150

Data Node 主機名 SUSE151       IP地址 192.168.85.151

Data Node 主機名 SUSE152       IP地址 192.168.85.152

MGM Node 主機名 SUSE153      IP地址192.168.85.153

安裝介質:

MySQL-Cluster-gpl-server-7.1.24-1.sles11.i586.rpmwhich supplies the core files needed to run a MySQL Server with NDBCLUSTER storage engine support (that is, as a MySQL Cluster SQL Node)

MySQL-Cluster-gpl-client-7.1.24-1.sles11.i586.rpm管理mysql server 的客戶端,安裝了這個RPM包事後才能用mysql命令,進而進行數據庫的管理,寫sql 語句

MySQL-Cluster-gpl-storage-7.1.24-1.sles11.i586.rpmwhich supplies the MySQL Cluster Data Node binary(ndbd).

MySQL-Cluster-gpl-management-7.1.24-1.sles11.i586.rpmwhich provides the MySQL Cluster management serverbinary (ndb_mgmd),管理集羣的Data Node sql noe

MySQL-Cluster-gpl-tools-7.1.24-1.sles11.i586.rpm該軟件包最重要的就是提供了集羣管理的客戶端(ndb_mgmThe most important of these is the MySQL Cluster management client (ndb_mgm)

2.2 安裝介質

SQL Node(192.168.85.150):

rpm -Uhv MySQL-Cluster-gpl-server-7.1.24-1.sles11.i586.rpm

rpm -Uhv MySQL-Cluster-gpl-client-7.1.24-1.sles11.i586.rpm

Data Node(192.168.85.151) :

rpm -Uhv MySQL-Cluster-gpl-storage-7.1.24-1.sles11.i586.rpm

 Data Node(192.168.85.152) :

rpm -Uhv MySQL-Cluster-gpl-storage-7.1.24-1.sles11.i586.rpm

MGM Node 192.168.85.153):

rpm -Uhv MySQL-Cluster-gpl-management-7.1.24-1.sles11.i586.rpm

 rpm -Uhv MySQL-Cluster-gpl-tools-7.1.24-1.sles11.i586.rpm 

SQL NodeData Node若是/etc下沒有my.cnf 就要到/usr/share/mysql下面copy與你係統對應的配置文件並重命名爲my.cnf  (注意:/usr/share/mysql目錄下有多個*.cnf文件,分別爲my-huge.cnfmy-large.cnfmy-medium.cnfmy-small.cnf,對於與大中小各類類型的數據設置),本次測試使用my-medium.cnf的配置。

2.3 安裝步驟

前提:

臺主機相互之間能夠ping

2.3.1 SQL Node(192.168.85.150)安裝

SQL Node(192.168.85.150):

rpm -Uhv MySQL-Cluster-gpl-server-7.1.24-1.sles11.i586.rpm

rpm -Uhv MySQL-Cluster-gpl-client-7.1.24-1.sles11.i586.rpm

vi /etc/my.cnf

# Options for mysqld process:
[mysqld]
ndbcluster # run NDB storage engine
ndb-connectstring=192.168.85.153 # location of management server
# Options for ndbd process:
[mysql_cluster]
ndb-connectstring=192.168.85.153 # location of management server

2.3.2 Data Node(192.168.85.151)安裝

rpm -Uhv MySQL-Cluster-gpl-storage-7.1.24-1.sles11.i586.rpm

vi /etc/my.cnf

# Options for mysqld process:
[mysqld]
ndbcluster # run NDB storage engine
ndb-connectstring=192.168.85.153  # location of management server
# Options for ndbd process:
[mysql_cluster]
ndb-connectstring=192.168.85.153  # location of management server

2.3.3 Data Node(192.168.85.152)安裝

rpm -Uhv MySQL-Cluster-gpl-storage-7.1.24-1.sles11.i586.rpm

vi /etc/my.cnf

# Options for mysqld process:
[mysqld]
ndbcluster # run NDB storage engine
ndb-connectstring=192.168.85.153 # location of management server
# Options for ndbd process:
[mysql_cluster]
ndb-connectstring=192.168.85.153  # location of management server

2.3.4 MGM Node 192.168.85.153)安裝

rpm -Uhv MySQL-Cluster-gpl-management-7.1.24-1.sles11.i586.rpm

rpm -Uhv MySQL-Cluster-gpl-tools-7.1.24-1.sles11.i586.rpm

mgm node 的配置步驟以下:

shell> mkdir /var/lib/mysql-cluster
shell> cd /var/lib/mysql-cluster
shell> vi config.ini

配置文件時 config.ini,該文件包括如下相似的內容。

[ndbd default]
NoOfReplicas=2 # Number of replicas
DataMemory=80M # How much memory to allocate for data storage
IndexMemory=18M # How much memory to allocate for index storage
[tcp default]
portnumber=2202 # This the default; however, you can use any port that is free
[ndb_mgmd]

id=1
hostname=192.168.85.153 # Hostname or IP address of management node
datadir=/var/lib/mysql-cluster # Directory for management node log files
[ndbd]
id=2
hostname=192.168.85.151 # Hostname or IP address
datadir=/usr/local/mysql/data # Directory for this data node's data files
[ndbd]

id=3
hostname=192.168.85.152 # Hostname or IP address
datadir=/usr/local/mysql/data # Directory for this data node's data files
[mysqld]

id=4
hostname=192.168.85.150 # Hostname or IP address

在配置config.inidata node datadir 能夠在本身定義的路徑下面。

安裝和配置都完成之後,接下來就是啓動mysql 集羣了看是否成功。

2.4 啓動Cluster

CLUSTER啓動的順序依次爲:管理節點數據節點—SQL節點

2.4.1 啓動方式一

管理節點啓動:

登陸到SUSE153,而後執行

shell> /usr/sbin/ndb_mgmd  -f  /var/lib/mysql-cluster/config.ini

數據節點啓動:

登陸到SUSE151SUSE152,而後執行

第一次啓動使用:shell> /usr/sbin/ndbd -ndb-connectstring=192.168.85.153:1186

非第一次啓動使用:shell> /usr/sbin/ndbd

SQL節點啓動:

登陸到SUSE150,而後執行

shell> /usr/bin/mysqld_safe -user=mysql &

2.4.2 啓動方式二

1.推薦通常是先啓動mgm node,所以在SUSE153上執行:

shell> ndb_mgmd -f /var/lib/mysql-cluster/config.ini

2.而後啓動data node ,每一個data node 都用如下的命令啓動,所以在SUSE151SUSE152上分別執行以下命令

shell> ndbd

3.啓動sql node ,就是啓動mysql server 同樣的方法,最後在SUSE150上執行

shell> service mysql start或者 /etc/rc.d/init.d/mysqld start啓動。

4.全部的節點都啓動事後,就回到mgm node,執行一些ndb_mgm的管理命令,看是否能成功。

2.4.3 驗證是否啓動成功

[root@SUSE153 mysql]# ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> show

Cluster Configuration

---------------------

[ndbd(NDB)]     2 node(s)

id=2    @192.168.85.151  (mysql-5.1.63 ndb-7.1.24, Nodegroup: 0, Master)

id=3    @192.168.85.152  (mysql-5.1.63 ndb-7.1.24, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)

id=1    @192.168.85.153  (mysql-5.1.63 ndb-7.1.24)

[mysqld(API)]   1 node(s)

id=4    @192.168.85.150  (mysql-5.1.63 ndb-7.1.24)

若是出現這樣相似的界面,能夠說差很少成功了。

相關文章
相關標籤/搜索