文件 | 大小 | md5 |
---|---|---|
mysqlcluster-7.3.2-linux-x32.tar.gz | 431.0MB | 03093541b6416fc93935750d614d875b |
mysqlcluster-7.3.2-linux-x64.tar.gz | 441.8MB | 330c71a87fbf8f0468ec9c5e0ad6e794 |
文件 | 大小 | md5 |
---|---|---|
mysqlcluster-7.3.2-windows-x32.msi | 100.2MB | 9d25735d7e8af1a2e805f9a1fecc3a1f |
mysqlcluster-7.3.2-windows-x64.msi | 95.5MB | 6fe30e2045f074f471761cb17f0c3d1c |
「NDB」 是一種「內存中」的存儲引擎,它具備可用性高和數據一致性好的特色。
MySQL Cluster 可以使用多種故障切換和負載平衡選項配置NDB存儲引擎,但在 Cluster 級別上的存儲引擎上作這個最簡單。MySQL Cluster的NDB存儲引擎包含完整的數據集,僅取決於 Cluster自己內的其餘數據。
node
管理(MGM)節點:這類節點的做用是管理MySQL Cluster內的其餘節點,如提供配置數據、啓動並中止節點、運行備份等。因爲這類節點負責管理其餘節點的配置,應在啓動其餘節點以前首先啓動這類節點。MGM節點是用命令「ndb_mgmd」啓動的。mysql
數據節點:這類節點用於保存 Cluster的數據。數據節點的數目與副本的數目相關,是片斷的倍數。例如,對於兩個副本,每一個副本有兩個片斷,那麼就有4個數據節點。不過沒有必要設置多個副本。數據節點是用命令「ndbd」啓動的。linux
SQL節點:這是用來訪問 Cluster數據的節點。對於MySQL Cluster,客戶端節點是使用NDB Cluster存儲引擎的傳統MySQL服務器。一般,SQL節點是使用命令「mysqld -ndbcluster」啓動的,或將「ndbcluster」添加到「my.cnf」後使用「mysqld」啓動。sql
管理服務器(MGM節點)負責管理 Cluster配置文件和 Cluster日誌。 Cluster中的每一個節點從管理服務器檢索配置數據,並請求肯定管理服務器所在位置的方式。當數據節點內出現新的事件時,節點將關於這類事件的信息傳輸到管理服務器,而後,將這類信息寫入 Cluster日誌。數據庫
集羣配置概述:
windows
安裝版本:mysql cluster 7.3.2centos
操做系統 :centos6.3(X64)服務器
軟件名稱 :mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64.tar.gz (通用版)socket
管理節點IP:192.168.0.202tcp
數據節點-SQL節點IP:192.168.0.203
數據節點-SQL節點IP:192.168.0.204
安裝依賴包:yum install -y glibc perl libaio-devel
x32位系統要安裝兼容庫組:yum groupinstall 「Compatibility libraries」
1、管理節點安裝配置
一、安裝mysql-cluster
1
2
3
4
5
6
7
8
|
groupadd mysql
useradd
-g mysql -s
/sbin/nologin
mysql
tar
-zxvf mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64.
tar
.gz
mv
mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64
/usr/local/mysql-cluster
chown
-R root.mysql
/usr/local/mysql/
chown
-R mysql.mysql
/usr/local/mysql/data/
/usr/local/mysql/scripts/mysql_install_db
--basedir=
/usr/local/mysql
--datadir=
/usr/local/mysql/data
--user=mysql &
#初始化數據庫
cp
-rf
/usr/local/mysql/bin/ndb_mgm
*
/usr/local/bin/
#複製ndb節點管理命令到本地,方便使用
|
二、修改mysql主配置文件
1
2
3
4
5
6
7
8
9
10
11
12
|
vi
/etc/my
.cnf
[MYSQLD]
user = mysql
socket =
/tmp/mysql
.sock
basedir =
/usr/local/mysql
#安裝目錄
datadir =
/usr/local/mysql/data
#數據庫存放目錄
character-sets-server=UTF8
ndbcluster
#運行NDB存儲引擎
ndb-connectstring=192.168.0.202
lower_case_table_names=1
#表名是否區分大小寫1爲不區分,否則linux下表名是區分大小寫的
[MYSQL_CLUSTER]
ndb-connectstring=192.168.0.202
#Mysql Cluster管理節點IP
|
三、建立mysql集羣配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
mkdir
/var/lib/mysql-cluster
vi
/var/lib/mysql-cluster/config
.ini
[ndbd default]
NoOfReplicas=2
#定義在Cluster環境中相同數據的份數,最大爲4
DataMemory=256M
#分配的數據內存大小,根據本機服務器內存適量來分配
IndexMemory=256M
#設定用於存放索引(非主鍵)數據的內存段大小
#一個NDB節點能存放的數據量是會受到DataMemory和IndexMemory兩個參數設置的約束,二者任何一個達到限制數量後,都沒法再增長能存儲的數據量。若是繼續存入數據系統會報錯「table is full」。
[ndb_mgmd]
nodeid=1
hostname
=192.168.0.202
datadir=
/var/lib/mysql-cluster/
[ndbd]
nodeid=2
hostname
=192.168.0.203
datadir=
/usr/local/mysql/data
[ndbd]
nodeid=3
hostname
=192.168.0.204
datadir=
/usr/local/mysql/data
[mysqld]
nodeid=4
hostname
=192.168.0.203
[mysqld]
nodeid=5
hostname
=192.168.0.204
保存退出!
chown
mysql.mysql
/var/lib/mysql-cluster/config
.ini
|
2、兩臺數據節點和SQL節點配置相同
一、安裝mysql-cluster
1
2
3
4
5
6
7
8
9
10
|
tar
-zxvf mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64.
tar
.gz
mv
mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64
/usr/local/mysql
groupadd mysql
useradd
-g mysql -s
/sbin/nologin
mysql
chown
-R root.mysql
/usr/local/mysql
chown
-R mysql.mysql
/usr/local/mysql/data
/usr/local/mysql/scripts/mysql_install_db
--basedir=
/usr/local/mysql
--datadir=
/usr/local/mysql/data
--user=mysql &
#初始化數據庫
cp
/usr/local/mysql/support-files/mysql
.server
/etc/init
.d
/mysqld
cp
/usr/local/mysql/support-files/medium
.cnf
/etc/my
.cnf
chmod
+x
/etc/init
.d
/mysqld
|
二、修改mysql配置文件
1
2
3
4
5
6
7
8
9
10
11
|
vi
/etc/my
.cnf
[MYSQLD]
user=mysql
character_set_server=utf8
ndbcluster
ndb-connectstring=192.168.0.202
default-storage-engine=ndbcluster
#設置默認是NDB存儲引擎
datadir=
/usr/local/mysql/data
basedir=
/usr/local/mysql
[MYSQL_CLUSTER]
ndb-connectstring=192.168.0.202
#mysql cluster 管理節點IP
|
3、測試(先關閉三臺服務器的防火牆(IPTABLES)與 Selinux)
一、啓動管理節點
1
2
3
|
ndb_mgmd -f
/var/lib/mysql-cluster/config
.ini --initial
netstat
-tuplna |
grep
1186
#默認鏈接端口1186,啓動成功
tcp 0 0 0.0.0.0:1186 0.0.0.0:* LISTEN 1369
/ndb_mgmd
|
#--initial:第一次啓動時加上,其它時候不要加,否則會數據清空,除非是在備份、恢復或配置變化後重啓時。
若是啓動出現報錯:把config.ini裏設置的nodeid都給刪除便可!
二、啓動兩臺數據節點和SQL節點
數據節點:/usr/local/mysql/bin/ndbd --initial
SQL節點:bin/mysqld_safe --user=mysql & 或 service mysqld start
三、查看集羣狀態
ndb_mgm -e show #顯示管理節點和數據節點則配置成功
四、建立一個數據庫驗證是否同步
1
2
3
4
5
6
|
mysql -u root -p
Mysql>create database
test
;
Mysql>use
test
;
Mysql>create table abc (
id
int) engine=ndbcluster;
#指定數據庫表的引擎爲NDB,不然同步失敗
Mysql>Insert into abc ()values (1);
Mysql>
select
* from abc;
|
#此時看兩個數據是否數據一致,若是一致說明集羣已經成功!
注意事項:
1.在建表的時候必定要用ENGINE=NDB或ENGINE=NDBCLUSTER指定使用NDB集羣存儲引擎,或用ALTER TABLE選項更改表的存儲引擎。
2.NDB表必須有一個主鍵,所以建立表的時候必須定義主鍵,不然NDB存儲引擎將自動生成隱含的主鍵。
3.Sql節點的用戶權限表仍然採用MYISAM存儲引擎保存的,因此在一個Sql節點建立的MySql用戶只能訪問這個節點,若是要用一樣的用戶訪問別的Sql節點,須要在對應的Sql節點追加用戶。
4、管理和維護命令
關閉mysql集羣:ndb_mgm -e shutdown
重啓mysql集羣:ndb_mgmd -f /var/lib/mysql-cluster/config.ini
重啓數據節點:/usr/local/mysql/bin/ndbd
啓動SQL節點:/usr/local/mysql/bin/mysqld_safe --user=mysql & 或 service mysqld restart
查看mysql狀態:ndb_mgm -e show
啓動順序:
管理節點 -> 數據節點 -> SQL節點
關閉順序:
SQL節點 -> 數據節點 -> 管理節點
本文出自 「「企鵝」那點事兒」 博客,請務必保留此出處http://going.blog.51cto.com/7876557/1290451