mysql cluster 安裝NDB二進制版本

mysql cluster 基於NDB CLUSTER存儲引擎的完整的分佈式數據庫系統。MYSQL CLUSTER是一個share nothing架構,各個mysql server之間並不共享任何數據。mysql cluster其實是在無共享存儲設備上實現的一種徹底分佈式數據庫系統。如今版本的MYSQL CLUSTER能夠作到將全部搜索引擎裝載在內存中,實際的數據能夠不用所有裝載到內存中。node

mysql cluster有3部分組成:mysql

1.sql node:負責數據庫存儲層之上的全部事情,好比連接管理,quere優化和相應,cache管理。須要在配置文件(my.cnf)添加ndbcluster參數。linux

2.data node:實現底層的數據存儲功能,保存cluster的數據,每一個data節點保存完整數據的一個fragment.通常來講ndb節點被組織成一個一個的ndb group,一個ndb group實際上就是一組存有徹底相同的物理數據的NDB節點羣。數據節點的配置參數在管理節點的config.ini中配置。NoOfreplicas參數指定每一份數據被冗餘存儲在不一樣節點上面的分數,通常至少設置成2.sql

3.managerment node:負責管理整個集羣中的各個節點的管理工做,包括集羣的配置,啓動關閉節點,對各個節點進行常規維護,以及實施數據的備份等。shell

mysql cluter 啓動順序:數據庫

managerment node --->data node --->sql nodevim

######################################################3網絡

mysql cluster network:架構

managerment node:10.10.54.86分佈式

data node:10.10.54.85/87

sql node:10.10.54.85/87

備份之前數據:

[root@nan86 ~]# mv /usr/local/mysql/ /usr/local/mysql_bak

[root@nan85 ~]# mv /usr/local/mysql/ /usr/local/mysql_bak

[root@nan87 ~]# mv /usr/local/mysql/ /usr/local/mysql_bak

配置步驟:

1.解壓文件:
三個主機85,86,87都作以下操做:
#tar xvf mysql-cluster-gpl-7.2.15-linux2.6-x86_64.tar.gz
#mv mysql-cluster-gpl-7.2.15-linux2.6-x86_64 /usr/local/mysql
#chown mysql.mysql -R /usr/local/mysql

2.配置管理節點
在主機10.10.54.86上:

[root@nan86 bin]# cp /usr/local/mysql/bin/ndb_mgm* /usr/local/bin/
[root@nan86 etc]# pwd
/etc
[root@nan86 etc]# mkdir ndb
[root@nan86 ndb]# vim /etc/ndb/config.ini 
[NDBD DEFAULT]
NoOfReplicas=2
DataMemory=512M
IndexMemory=256M

//能夠不加
[TCP DEFAULT]
portnumber=2202

[NDB_MGMD]
nodeid=1
hostname=10.10.54.86
datadir=/data/ndb

[NDBD]
nodeid=2
hostname=10.10.54.85
datadir=/data/ndb
BackupDataDir=/data/backup

[NDBD]
nodeid=3
hostname=10.10.54.87
datadir=/data/ndb
BackupDataDir=/data/backup

[MYSQLD]
nodeid=10
hostname=10.10.54.85

[MYSQLD]
nodeid=11
hostname=10.10.54.87

3.SQL節點配置
在主機10.10.54.85和10.10.54.87上作以下操做:

#/etc/init.d/mysqld stop
# vim /etc/my.cnf
//添加以下:
[mysql_cluster]
ndb-connectstring=10.10.54.86
[mysqld]
datadir=/data/ndb
ndbcluster
ndb-connectstring=10.10.54.86

# vim /etc/init.d/mysqld 
#修改下面的數據
datadir=/data/ndb

初始化數據:
#/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql


4.啓動管理節點
在主機10.10.54.86上

[root@nan86 ~]# ndb_mgmd -f /etc/ndb/config.ini --initial
MySQL Cluster Management Server mysql-5.5.35 ndb-7.2.15

[root@nan86 ~]# ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> show

5.啓動data節點
在10.10.54.85和10.10.54.87
# ndbd --initial --ndb-connectstring=10.10.54.86
2014-02-26 08:21:38 [ndbd] INFO     -- Angel connected to '10.10.54.86:1186'
2014-02-26 08:21:38 [ndbd] INFO     -- Angel allocated nodeid: 2

6.啓動SQL節點
在10.10.54.85和10.10.54.87
#/etc/init.d/mysqld start

7.查看SQL節點和data節點是否成功
在管理節點上,看到以下是成功的。
[root@nan86 ndb]# 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	@10.10.54.85  (mysql-5.5.35 ndb-7.2.15, Nodegroup: 0, *)
id=3	@10.10.54.87  (mysql-5.5.35 ndb-7.2.15, Nodegroup: 0)

[ndb_mgmd(MGM)]	1 node(s)
id=1	@10.10.54.86  (mysql-5.5.35 ndb-7.2.15)

[mysqld(API)]	2 node(s)
id=4	@10.10.54.85  (mysql-5.5.35 ndb-7.2.15)
id=5	@10.10.54.87  (mysql-5.5.35 ndb-7.2.15)

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
若是看到以下:
ndb_mgm> show
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)]	2 node(s)
id=2 (not connected, accepting connect from 10.10.54.85)
id=3 (not connected, accepting connect from 10.10.54.87)

[ndb_mgmd(MGM)]	1 node(s)
id=1	@10.10.54.86  (mysql-5.5.35 ndb-7.2.15)

[mysqld(API)]	2 node(s)
id=4 (not connected, accepting connect from 10.10.54.85)
id=5 (not connected, accepting connect from 10.10.54.87)

解決方法:
(1)查看SQL節點和data節點是否啓動。
(2)查看/data/ndb下全部文件全部者否是mysql.mysql
        /usr/local/mysql下全部文件全部者否是mysql.mysql
(3)查看iptables
(4)查看網絡
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

7.驗證NDB集羣
在10.10.54.85上
mysql> create table sn(age int)
    -> engine=ndb;
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| sn             |
+----------------+
mysql> insert into sn values(12);
...
在10.10.54.87上
mysql> select * from sn;
+------+
| age  |
+------+
|   12 |
|   12 |
|   12 |
|   12 |
|   12 |
+------+
經測試,插入更新一樣能同步。
相關文章
相關標籤/搜索