mysql cluster 安装NDB二进制版本

mysql cluster 基于NDB CLUSTER存储引擎的完整的分布式数据库系统。MYSQL CLUSTER是一个share nothing架构,各个mysql server之间并不共享任何数据。mysql cluster实际上是在无共享存储设备上实现的一种完全分布式数据库系统。现在版本的MYSQL CLUSTER可以做到将所有搜索引擎装载在内存中,实际的数据可以不用全部装载到内存中。

mysql cluster有3部分组成:

1.sql node:负责数据库存储层之上的所有事情,比如链接管理,quere优化和相应,cache管理。需要在配置文件(my.cnf)添加ndbcluster参数。

2.data node:实现底层的数据存储功能,保存cluster的数据,每个data节点保存完整数据的一个fragment.一般来说ndb节点被组织成一个一个的ndb group,一个ndb group实际上就是一组存有完全相同的物理数据的NDB节点群。数据节点的配置参数在管理节点的config.ini中配置。NoOfreplicas参数指定每一份数据被冗余存储在不同节点上面的分数,一般至少设置成2.

3.managerment node:负责管理整个集群中的各个节点的管理工作,包括集群的配置,启动关闭节点,对各个节点进行常规维护,以及实施数据的备份等。

mysql cluter 启动顺序:

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

######################################################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 |
+------+
经测试,插入更新同样能同步。



你可能感兴趣的:(mysql cluster 安装NDB二进制版本)