http://blog.chinaunix.net/space.php?uid=20639775&do=blog&id=154598

分类: mysql cluster

一、mysql cluster简介:

MySQL Cluster 是一种技术,该技术允许在无共享的系统中部署内存中数据库的 Cluster 。通过无共享体系结构,系 统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。
MySQL Cluster
由一组计算机构成,每台计算机上均运行着多 种进程,包括MySQL服务器,NDB Cluster 的数据节点,管理服务器,以及(可能)专门的数据访问程 序。关于 Cluster 中这些组件的关系,请参见下图:

cluster 7.0 安装_installation

       三个节点的功能如下:

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

数据节点1NDB1  192.168.1.121

数据节点1NDB2  192.168.1.110

SQL节点(SQL        192.168.1.159

 

操作系统:CentOS release 5.4  32bit (均 采用最小化安装)

2、  软件包下载和解压:(在4台服务器都执行这个操作)

wget http://mysql.ntu.edu.tw/Downloads/MySQL-Cluster-7.0/mysql-cluster-gpl-7.0.16-linux-i686-glibc23.tar.gz

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    #添加以下内容:

       #数据节点1NDB1)的内容:

       [mysql_cluster]

ndb-connectstring="nodeid=11,192.168.1.108"

#数据节点2NDB1)的内容:

[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)、查看状态:

ndb_mgm> show
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