MySQL Cluster配置step by step
于是花了两天时间装机器和MySQL Cluster。整个过程还是比较顺利的,当然如果对MySQL常用命令比较熟悉的话会更顺利。
留下step by step配置方案,以防忘记。
MySQL Cluster是一种share nothing的机制,跟Oracle的RAC需要共享存储方案是不一样的。
他包含三种节点(node):
Data node:用来存放数据的节点,数据类型是NDB Cluster,放在该节点的内存里。
SQL node:mysql服务器/客户端节点。
MGM node:管理节点,纵观全局的一个配置节点。
所谓的节点,其实也就是相应的进程而已,所以我们可以将不同节点放在同一个机器上。所以理论上,我们只需要一台物理机器就可以玩MySQL Cluster了。
稍微了解了一点理论知识,就可以轻松配置好一个Cluster环境,但其他知识需要在以后的运维和测试过程中自己发掘。MySQL也是一个很庞大的知识体系,不逊于Oracle。
接下来Step by Step讲解如何配置MySQL Cluster,即使你只有0基础,相信也能够很轻松的配置。
1. 准备硬件资源
我拿到了四台普通PC机作为测试机,并全部装好RedHat EL5操作系统。
四台机器全部通过DHCP获得4个外部IP地址。但为了节点之间内部稳定,又给每台机器设定了一个子网静态IP地址,节点之间的通信就可以通过这个静态地址联系了。
这四台机器hostname取名为mysql1/2/3/4,静态地址为:
2. 部署节点
我们采用1个MGM node,2个SQL node,2个data node的分布方式。
其中由于资源限制,MGM node和一个SQL node部署在同一台机器上。
部署如下:
3. 安装MySQL软件
在所有节点上安装mysql-5.0.88-linux-i686-icc-glibc23.tar.gz
下载地址:
直接gunzip and tar -xvf解压就可以用了。
我们解压后放在/home/oracle/mysql
4. 建立OS user用来run mysql
在这里我们使用oracle用户(oracle组)。
5. MGM node的配置和启动
登入mysql4 as oracle user。
cd /home/oracle/mysql
mkdir mgmdata
建立全局配置文件mgmd.cnf,内容为:(只需特别注意红色部分的配置)
启动MGM node:
ndb_mgmd -f mgmd.cnf
ps -ef|grep mgmd|grep -v grep查看MGM node 进程是否已经起来。
[oracle@mysql4 mysql]$ ps -ef|grep mgmd|grep -v grep
Q.M V t{,D*} W7J s-I0e0oracle 22939 1 0 Nov27 ? 00:00:00 ndb_mgmd -f mgmd.cnf
再登入MGM控制台(ndb_mgm 192.168.123.4 2001),用show命令查看各个节点的状态。
(以下结果是所有配置完全后的状态,刚配好MGM node后应该看到所有其他节点都是not connected)
[oracle@mysql4 mysql]$ ndb_mgm 192.168.123.4 2001ITPUB个人空间.? x#g%i2S'Z \,t m
-- NDB Cluster -- Management Client --ITPUB个人空间1N6t X w1O
ndb_mgm> show
n T |+k S V0Connected to Management Server at: 192.168.123.4:2001
4~ E5k"q N [ g0Cluster ConfigurationITPUB个人空间 A,V o l*Q A V
---------------------ITPUB个人空间 U Y P H M c @2h e C*U
[ndbd(NDB)] 2 node(s)
@3a#u k a R ]x0id=2 @192.168.123.1 (Version: 5.0.88, Nodegroup: 0, Master)
/q3V"I L O.x4_-~0id=3 @192.168.123.2 (Version: 5.0.88, Nodegroup: 1)
[ndb_mgmd(MGM)] 1 node(s)ITPUB个人空间 {"R | d W1I/V \
id=1 @192.168.123.4 (Version: 5.0.88)
[mysqld(API)] 2 node(s)
C n t m:}u0id=4 @192.168.123.3 (Version: 5.0.88)ITPUB个人空间 @$vm q h p
id=5 @192.168.123.4 (Version: 5.0.88)
6. Data node的配置和启动。
登入mysql1和mysql2 as oracle user。
cd /home/oracle/mysql
mkdir ndbdata
以下以配置Data node 1为例:
建立ndbd1.cnf文件,内容为:(只需特别注意红色部分的配置)
启动Data node 1:
ndbd --defaults-file=ndbd1.cnf --initialITPUB个人空间7I w k o9s
(注意:--initial只需在第一次启动时加该参数)
查看ndb进程启动了:
[oracle@mysql1 mysql]$ ps -ef|grep ndb|grep -v grepITPUB个人空间 j b,U x7S+d!l)d.L;H:I
oracle 5864 1 0 Nov27 ? 00:00:00 ndbd --defaults-file=ndbd1.cnfITPUB个人空间 R k m v }$E \ O r
oracle 5865 5864 0 Nov27 ? 00:03:51 ndbd --defaults-file=ndbd1.cnf
并且在MGM node的控制台中show命令可以看到Data node不再是not connected状态了
Q {4t N u I4I E q {0同理配置Data node 2.
7. SQL node的配置和启动。
登入mysql3和mysql4 as oracle user。
以配置SQL node 1为例。
cd /home/oracle/mysql
mkdir data1
建立my.cnf,内容为:
建立一个新库:
scripts/mysql_install_db --datadir=/home/oracle/mysql/data1ITPUB个人空间z.~ W { ^
启动MySQL Server:
mysqld_safe &
同理配置和启动SQL node 2。
当一切都顺利完工后,登入MGM node,确保所有的节点都连接上:
ndb_mgm> showITPUB个人空间1{ v j K5J,W2{
Cluster ConfigurationITPUB个人空间 q/Z I:s)} V+S _%^
---------------------
j1j9\;e h h Z$Z'_ N0[ndbd(NDB)] 2 node(s)ITPUB个人空间 k L+q N k w zm ^
id=2 @192.168.123.1 (Version: 5.0.88, Nodegroup: 0, Master)ITPUB个人空间 P.F6W M Q u v1y"x#d
id=3 @192.168.123.2 (Version: 5.0.88, Nodegroup: 1)
[ndb_mgmd(MGM)] 1 node(s)
~#U#}/| C f t;] D2n0id=1 @192.168.123.4 (Version: 5.0.88)
[mysqld(API)] 2 node(s)ITPUB个人空间 M ~,o a b)l u r T+n&v
id=4 @192.168.123.3 (Version: 5.0.88)
.y P z:O W-\;s l+O)n0id=5 @192.168.123.4 (Version: 5.0.88)
8. 建个表测试一下:
在SQL node 1上建个表:
create table testbyhao(ITPUB个人空间 A t ?-O x
id mediumint unsigned not null auto_increment primary key,
6x+s |)t2@ s v0name varchar(20) not null default ''
6U x ^ U,d0)engine = ndbclusterdefault charset utf8;
insert into testbyhao values(1, '11');ITPUB个人空间 I8P s(n W,g
insert into testbyhao values(2, '22');
在SQL node 2上能看到此表即可。
至此,一个简单的MySQL Cluster环境就搭建成功了。
有几点需要记住:
1.启动各个节点的顺序永远是:MGM node,Data Node,SQL node。
2.engine=ndbcluster或者engine=ndb的表才能使用Data node所存储。其他engine即放在SQL node本地,就像单机版一样。
3.多个节点放在一台机器上时,需要给每个节点分配不同端口号以此区分。
(以后奉上其他MySQL Cluster知识点。)
- 最新评论