mysql cluster 部署實戰

一、MySQL集羣介紹

MySQL集羣是一種技術,該技術允許在無共享的系統中部署“內存中”數據庫的集羣。通過無共享體系結構,系統能夠使用廉價的硬件,而且對軟硬件無特殊要求。此外,由於每個組件有自己的內存和磁盤,不存在單點故障。

image

Mysql 集羣由三種不同節點組成,每一種節點提供特殊的服務,這三類節點分別是:

管理(MGM)節點:這類節點的作用是管理MySQL簇內的其他節點,如提供配置數據、啓動並停止節點、運行備份等。由於這類節點負責管理其他節點的配置,應在啓動其他節點之前首先啓動這類節點。MGM節點是用命令ndb_mgmd啓動的。

數據節點:這類節點用於保存簇的數據。數據節點的數目與副本的數目相關,是片段的倍數。例如,對於兩個副本,每個副本有兩個片段,那麼就有4個數據節點。沒有必要有一個以上的副本。數據節點是用命令ndbd啓動的。

SQL節點:這是用來訪問簇數據的節點。對於MySQL簇,客戶端節點是使用NDB簇存儲引擎的傳統MySQL服務器。典型情況下,SQL節點是使用命令mysqld –ndbcluster啓動的,或將ndbcluster添加到my.cnf後使用mysqld啓動。

二、實驗環境

一個管理節點、二個數據節點、二個SQL節點。系統全部使用CentOS5.5 x64,最小化安裝。

名稱

IP

Mgm1

172.20.4.17

Ndb1

172.20.4.13

Ndb2

172.20.4.14

Mysql1

172.20.4.11

Mysql2

172.20.4.12

Mysql的版本爲mysql-cluster-gpl-7.1.10-linux-x86_64-glibc23.tar.gz 。

三、安裝配置步驟

1、存儲節點和SQL節點安裝

在mysql1、mysql2、ndb1和ndb2上都執行以下操作。

# groupadd mysql && useradd -g mysql mysql

# tar -zxvf /usr/local/src/mysql-cluster-gpl-7.1.9a-linux-i686-glibc23.tar.gz -C /usr/local/ && mv /usr/local/mysql-cluster-gpl-7.1.9a-linux-i686-glibc23 /usr/local/mysql

# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

# chown -R root /usr/local/mysql && chown -R mysql /usr/local/mysql/data && chgrp -R mysql /usr/local/mysql

2、管理節點安裝

在管理節點mgm1上執行如下命令

# scp mysql1.cluster:/usr/local/mysql/bin/ndb_mgm* /usr/local/bin/ && chmod +x /usr/local/bin/ndb_mgm*

3、配置管理節點

#mkdir –p /usr/local/mysql/mysql-cluster

#cat &gt; /usr/local/mysql/mysql-cluster/config.ini <&lt; EOF

[NDBD DEFAULT]

NoOfReplicas=2 #副本數

[MYSQLD DEFAULT]

[NDB_MGMD DEFAULT]

[TCP DEFAULT]

# Managment Server

[NDB_MGMD]

HostName=172.20.4.17

# Storage Engines

[NDBD]

HostName=172.20.4.13

DataDir=/mysqll/mysql-cluster #數據存儲目錄

[NDBD]

HostName=172.20.4.14

DataDir=/mysql/mysql-cluster

[MYSQLD]

[MYSQLD]

4、配置存儲和SQL節點

cat > /etc/my.cnf <&lt; EOF

[mysqld]

datadir=/usr/local/mysql/data

ndbcluster

ndb-connectstring=172.20.4.17

[mysql_cluster]

ndb-connectstring=172.20.4.17

EOF

5、啓動mysql集羣

? 先啓動管理節點 #ndb_mgmd –f /usr/local/mysql/mysql-cluster/config.ini

? 再啓動存儲節點 #/usr/local/mysql/bin/ndbd –initial

PS僅應在首次啓動ndbd時,或在備份/恢復或配置變化後重啓ndbd時使用“--initial”參數,這很重要。原因在於,該參數會使節點刪除由早期ndbd實例創建的、用於恢復的任何文件,包括恢復用日誌文件。

? 最後啓動SQL節點 #cd /usr/local/mysql && bin/mysqld_safe –user=mysql &

? 在管理節點服務器mgm1上查看集羣各節點狀況

[root@mgm1 ~]# ndb_mgm

-- NDB Cluster -- Management Client --

ndb_mgm> show

Connected to Management Server at: localhost:1186

Cluster Configuration

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

[ndbd(NDB)] 2 node(s)

id=2 @172.20.4.13 (mysql-5.1.51 ndb-7.1.10, Nodegroup: 0, Master)

id=3 @172.20.4.14 (mysql-5.1.51 ndb-7.1.10, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)

id=1 @172.20.4.17 (mysql-5.1.51 ndb-7.1.10)

[mysqld(API)] 2 node(s)

id=4 @172.20.4.12 (mysql-5.1.51 ndb-7.1.10)

id=5 @172.20.4.11 (mysql-5.1.51 ndb-7.1.10)

說明:id是自動成生的,可以在config.ini文件中指定。

三、測試

1、在mysql1上登錄mysql服務器新建一個數據庫ctest,在mysql2上登錄mysql服務器也能看到數據庫已創建。

2、在mysql2上登錄mysql服務器,進入ctest新建表,同樣在mysql1上也能看到。

PS:新建表時需要在末尾指定一下表的存儲引擎。

CREATE TABLE ctest (i INT) ENGINE=NDBCLUSTER;

3、其它測試進行中………..

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章