Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6404165
  • 博文数量: 505
  • 博客积分: 12019
  • 博客等级: 上将
  • 技术积分: 6796
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-01 16:46
文章分类

全部博文(505)

文章存档

2021年(3)

2020年(59)

2019年(4)

2018年(10)

2017年(5)

2016年(2)

2015年(4)

2014年(4)

2013年(16)

2012年(47)

2011年(65)

2010年(46)

2009年(34)

2008年(52)

2007年(52)

2006年(80)

2005年(22)

分类: LINUX

2012-04-28 10:46:30

1、从http://dev.mysql.com/downloads/cluster/ 选择GENERIC LINUX版本,下载 mysql-cluster-gpl-7.2.5-linux2.6-i686.tar.gz


centos6.2上安装


2、部署情况


管理节点  10.57.220.195

数据节点1 10.57.220.201
数据节点2 10.57.220.202

SQL节点1  10.57.220.197
SQL节点2  10.57.220.199


说明:两个数据节点,互为备份,解决数据节点单点故障,数据冗余

      两个sql节点,负责负载均衡,可扩展。可结合lvs


3、准备

groupadd mysql
useradd -g mysql mysql


mkdir /usr/local/mysql

mkdir /usr/local/mysql/sock

tar -xvzf mysql-cluster-gpl-7.2.5-linux2.6-i686.tar.gz

cp -R ./mysql-cluster-gpl-7.2.5-linux2.6-i686/* /usr/local/mysql


chown -R mysql.mysql /usr/local/mysql/data
chown -R mysql.mysql /usr/local/mysql/sock
chgrp -R mysql .

./scripts/mysql_install_db --user=mysql


以上所有节点都要执行


管理节点还要:

mkdir /usr/local/mysql/mydata


4、配置管理节点

[ndbd default]
NoOfReplicas= 2
DataMemory=100M
indexMemory=30M
[ndb_mgmd]
NodeID=1
HostName=10.57.220.195
Datadir=/usr/local/mysql/mydata
[ndbd]
NodeId=2
HostName= 10.57.220.201
DataDir= /usr/local/mysql/data
[ndbd]
NodeId=3
HostName= 10.57.220.202
DataDir= /usr/local/mysql/data
[mysqld]
NodeId=4
Hostname=10.57.220.197
[mysqld]
NodeId=5
Hostname=10.57.220.199


5、配置数据节点

 

节点1

[mysqld]
ndbcluster
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
bind-address  = 10.57.220.201
ndb-connectstring=10.57.220.195
[mysql_cluster]
ndb-connectstring=10.57.220.195


节点2

[mysqld]
ndbcluster
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
bind-address  = 10.57.220.202
ndb-connectstring=10.57.220.195
[mysql_cluster]
ndb-connectstring=10.57.220.195


6、配置sql节点

sql节点1

[mysqld]
ndbcluster
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
bind-address  = 10.57.220.197
ndb-connectstring=10.57.220.195

[mysql_cluster]
ndb-connectstring=10.57.220.195


sql节点2

[mysqld]
ndbcluster
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
bind-address  = 10.57.220.199
ndb-connectstring=10.57.220.195

[mysql_cluster]
ndb-connectstring=10.57.220.195


6、启动

 次序必须:管理节点->数据节点->sql节点


 1)先停掉防火墙 

     service iptables stop

 2)启动管理node

 /usr/local/mysql/bin/ndb_mgmd –-initial  -f /usr/local/mysql/config.ini

 (首次启动要–-initial ),启动 默认创建 /usr/local/mysql/mysql-cluster目录,有时候需要清理掉/usr/local/mysql/mysql-cluster


4)启动数据节点:

启动两个数据节点

/usr/local/mysql/bin/ndbd –-initial 


首次启动,则需要添加--initial参数,以便进行NDB节点的初始化工作。在以后的启动过程中,则是不能添加该参数的,否则ndbd程序会清除在之前建立的所有用于恢复的数据文件和日志文件。


3)启动sql节点:

启动两个sql节点

/usr/local/mysql/bin/mysqld_safe --user=mysql &



5)最后在管理节点上检查

/usr/local/mysql/bin/ndb_mgm -e show

 

success 如下:

Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=2    @10.57.220.201  (mysql-5.5.20 ndb-7.2.5, Nodegroup: 0, Master)
id=3    @10.57.220.202  (mysql-5.5.20 ndb-7.2.5, starting, Nodegroup: 0)


[ndb_mgmd(MGM)] 1 node(s)
id=1    @10.57.220.195  (mysql-5.5.20 ndb-7.2.5)

[mysqld(API)]   2 node(s)
id=4    @10.57.220.197  (mysql-5.5.20 ndb-7.2.5)
id=5    @10.57.220.199  (mysql-5.5.20 ndb-7.2.5)



7、测试

1)通过10.57.220.197:3306 和 10.57.220.199:3306 测试sql

可用mysql-front 分别在两个地方修改一表,结果是同步,共享的。ok


2)重点测试数据节点

重启动master数据节点, 则自动切换,另一个变为master。结论,能处理单点故障。 ok

但是直接杀掉进程(kill -9 )情况下,通过ndb_mgm发现,数据和sql节点都停掉了。结论不能处理单点故障。其他实验参考



3)关闭集群
在管理节点上执行:
  ndb_mgm -e shutdown     #将安全的关闭管理节点和数据节点。


关闭SQL节点

   mysqladmin shutdown     #或别的方式关闭。


4)重启集群

管理节点
/usr/local/mysql/bin/ndb_mgmd -f /usr/local/mysql/config.ini


    数据节点
    /usr/local/mysql/bin/ndbd 

    sql节点
    /usr/local/mysql/bin/mysqld_safe --user=mysql &

8、打包配置文件
1)以上配置文件(一个管理节点的)
 配置.rar  

2)两个管理节点
另外,为了做到完全无单点问题,管理节点也采用两个。
配置文件为 2个管理节点配置.rar  
说明:
管理节点1  10.57.220.195 
管理节点2  10.57.220.196 

数据节点1 10.57.220.201
数据节点2 10.57.220.202

SQL节点1  10.57.220.197
SQL节点2  10.57.220.199


两个管理节点配置相同:如下
[ndbd default]
NoOfReplicas= 2
DataMemory=100M
indexMemory=30M
[ndb_mgmd]
NodeID=1
HostName=10.57.220.195
Datadir=/usr/local/mysql/mydata
[ndb_mgmd]
NodeID=2
HostName=10.57.220.196
Datadir=/usr/local/mysql/mydata
[ndbd]
NodeId=3
HostName= 10.57.220.201
DataDir= /usr/local/mysql/data
[ndbd]
NodeId=4
HostName= 10.57.220.202
DataDir= /usr/local/mysql/data
[mysqld]
NodeId=5
Hostname=10.57.220.197
[mysqld]
NodeId=6
Hostname=10.57.220.199

数据节点分别如下
数据节点1
[mysqld]
ndbcluster
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
bind-address  = 10.57.220.202
ndb-connectstring=10.57.220.195:1186,10.57.220.196:1186
[mysql_cluster]
ndb-connectstring=10.57.220.195:1186,10.57.220.196:1186

数据节点2
[mysqld]
ndbcluster
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
bind-address = 10.57.220.201
ndb-connectstring=10.57.220.195:1186,10.57.220.196:1186
[mysql_cluster]
ndb-connectstring=10.57.220.195:1186,10.57.220.196:1186

sql节点配置如下
sql节点1
[mysqld]
ndbcluster
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
bind-address  = 10.57.220.199
ndb-connectstring=10.57.220.195:1186,10.57.220.196:1186
[mysql_cluster]
ndb-connectstring=10.57.220.195:1186,10.57.220.196:1186

sql节点2
[mysqld]
ndbcluster
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
bind-address = 10.57.220.197
ndb-connectstring=10.57.220.195:1186,10.57.220.196:1186
[mysql_cluster]
ndb-connectstring=10.57.220.195:1186,10.57.220.196:1186


测试:一个管理节点机器宕机,不影响集群系统正常操作。从而完全避免了单点故障问题。


阅读(3287) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~