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 |
+------+
经测试,插入更新一样能同步。
相关文章
相关标签/搜索