http://blog.chinaunix.net/space.php?uid=20639775&do=blog&id=154598
一、mysql cluster简介:
MySQL Cluster 是一种技术,该技术允许在无共享的系统中部署“内存中”数据库的 Cluster 。通过无共享体系结构,系 统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。
MySQL Cluster 由一组计算机构成,每台计算机上均运行着多 种进程,包括MySQL服务器,NDB Cluster 的数据节点,管理服务器,以及(可能)专门的数据访问程 序。关于 Cluster 中这些组件的关系,请参见下图:
三个节点的功能如下:
1、 管理(MGM)节点:这类节点的作用是管理MySQL Cluster内的其他节点,如提供配 置数据、启动并停止节点、运行备份等。由于这类节点负责管理其他节点的配置, 应在启动其他节点之前首先启 动这类节点。MGM节 点是用命令“ndb_mgmd”启动的。
2、 数据节点:这类节点用于保存 Cluster的数据。数据节点的数目与 副本的数目相关,是片段的倍数。例如,对于两个副本,每个副本有两个片段,那么就有4个数据节点。不过没有必要设置多个副本。数据节点是用命令“ndbd”启动的。
3、 SQL节点:这是用来访问 Cluster数据的节点。对于MySQL Cluster,客户端节点是使用NDB Cluster存储引擎的传统MySQL服务器。通常,SQL节点是使用命令“mysqld –ndbcluster”启 动的,或将“ndbcluster”添加到“my.cnf”后使用“mysqld”启动
二、利用编译好的包搭建mysql cluster环境
1、 搭建环境:
管理节点(MGM) 192.168.1.108
数据节点1(NDB1) 192.168.1.121
数据节点1(NDB2) 192.168.1.110
SQL节点(SQL) 192.168.1.159
操作系统:CentOS release 5.4 32bit (均 采用最小化安装)
2、 软件包下载和解压:(在4台服务器都执行这个操作)
tar xzvf mysql-cluster-gpl-7.0.16-linux-i686-glibc23.tar.gz
3、 开始安装:
1)、管理节点的安装:
cp mysql-cluster-gpl-7.0.16-linux-i686-glibc23/bin/ndb_mgm /usr/bin/
cp mysql-cluster-gpl-7.0.16-linux-i686-glibc23/bin/ndb_mgmd /usr/bin/
mkdir /var/lib/mysql-cluster
#创建管理节点配置 文件:
vi /var/lib/mysql-cluster/config.ini
添加如下内容:
[NDB_MGMD]
HostName=192.168.1.108
[NDBD DEFAULT]
NoOfReplicas=1
DataMemory=80M
IndexMemory=18M
DataDir=/var/lib/mysql-cluster
FileSystemPath=/var/lib/mysql-cluster
[NDBD]
id=11
HostName=192.168.1.121
[NDBD]
id=12
HostName=192.168.1.110
[MYSQLD]
id=21
HostName=192.168.1.159
ArbitrationRank=2
/var/lib/mysql-cluster/config.ini (END)
创建my.cnf文件
vi /etc/my.cnf
添加如下内容:
[mysqld]
ndbcluster
ndb-connectstring=192.168.1.108
[mysql_cluster]
ndb-connectstring=192.168.1.108
# 添加以下内容,以便系统启动时启动:
ndb_mgmd -f /var/lib/mysql-cluster/config.ini
2)、数据节点的安装
mkdir /var/lib/mysql-cluster
cp mysql-cluster-gpl-7.0.16-linux-i686-glibc23/bin/ndbd /usr/bin/
vi /etc/my.cnf #添加以下内容:
#数据节点1(NDB1)的内容:
[mysql_cluster]
ndb-connectstring="nodeid=11,192.168.1.108"
#数据节点2(NDB1)的内容:
[mysql_cluster]
ndb-connectstring="nodeid=12,192.168.1.108"
3)、SQL节点的安装
mv mysql-cluster-gpl-7.0.16-linux-i686-glibc23 /usr/local/mysql
cd /usr/local/mysql
#添加权限
chown -R root . && chown -R mysql data && chgrp -R mysql .
cp support-files/my-large.cnf /etc/my.cnf
#初始化数据库
scripts/mysql_install_db –-user=mysql
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
#设置成服务启动
chkconfig –add mysqld
chkconfig --level 2345 mysqld on
#更改my.cnf文件
vi /etc/my.cnf
#[mysqld] 下增加内容:
ndbcluster
ndb-connectstring="nodeid=21,192.168.1.108"
#修改环境变量,增加mysql命令路径
vi /root/.bash_profile
#修改如下
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin
4)、启动mysql cluster
正确的启动顺序为:首先启动管理节点服务器,然后启动存储节点服务器,最后才启动SQL节点服务器
a、 启动管理节点:
/usr/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini
b、 启动存储节点:
/usr/bin/ndbd --initial #第一次启动必须加—initial
/usr/bin/ndbd #不是第一次启动命令
注意,仅应在首次启动ndbd时,或在备份/恢复数据或配置文件发生变化后重启ndbd时使用“--initial”参数。因为该参数会使节点删除由早期ndbd实例创建的、用于恢复的任何文件,包括用于恢复的日志文件。
c、 启动SQL节点:
/etc/rc.d/init.d/mysqld start
5)、安全关闭mysql cluster
在管理节点执行命令:/usr/bin/ndb_mgm –e shutdown
在sql节点执行:/etc/rc.d/init.d/mysqld stop
6)、查看状态:
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=11 @192.168.1.121 (mysql-5.1.47 ndb-7.0.16, Nodegroup: 0, Master)
id=12 @192.168.1.110 (mysql-5.1.47 ndb-7.0.16, Nodegroup: 1)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.1.108 (mysql-5.1.47 ndb-7.0.16)
[mysqld(API)] 1 node(s)
id=21 @192.168.1.159 (mysql-5.1.47 ndb-7.0.16)
感谢叶金荣大师的文章:http://imysql.cn/node/96