全部博文(512)
分类: 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