mysql_cluster

        MySQL Cluster 是一种技术,该技术允许在无共享的系统中部署“内存中”数据库的 Cluster 。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。

MySQL Cluster 由一组计算机构成,每台计算机上均运行着多种进程,包括MySQL服务器,NDB Cluster 的数据节点,管理服务器,以及(可能)专门的数据访问程序。关于 Cluster 中这些组件的关系。

mysql_cluster_第1张图片

                                                                                                                                     ----摘自百度文库

官方文档http://dev.mysql.com/doc/refman/5.1/zh/ndbcluster.html

msyql_cluster构建所需软件:

MySQL-Cluster-gpl-client-7.1.18-1.el6.x86_64.rpm
MySQL-Cluster-gpl-management-7.1.18-1.el6.x86_64.rpm
MySQL-Cluster-gpl-server-7.1.18-1.el6.x86_64.rpm
MySQL-Cluster-gpl-storage-7.1.18-1.el6.x86_64.rpm
MySQL-Cluster-gpl-tools-7.1.18-1.el6.x86_64.rpm
可以在官网下载http://www.mysql.com

也可以在我的网盘下载

http://yunpan.cn/QIHQsXz4rkdyx

搭建环境:

系统: RHEL6.3 selinux and iptables disabled

管理节点: 192.168.1.41

数据节点:192.168.1.43

                 192.168.1.45

sql节点:  192.168.1.42

                192.168.1.44

管理节点配置:

[root@cluster1 ~]# rpm -ivh MySQL-Cluster-gpl-management-7.1.18-1.el6.x86_64.rpm 
[root@cluster1 ~]# rpm -ivh MySQL-Cluster-gpl-tools-7.1.18-1.el6.x86_64.rpm 
[root@cluster1 ~]# mkdir -p /usr/mysql-cluster/
[root@cluster1 mysql-cluster]# vi config.ini 
[ndbd default]
NoOfReplicas=1    #该全局参数仅能在[NDBD DEFAULT]中设置,它定义了cluster中每个表保
                  存的副本数。该参数还指定了节点组的大小。节点组指的是保存相同信息的节点集合

DataMemory=50M    #该参数定义了数据节点用于保存数据库记录的空间大小,全部空间均是分配在内存
                  中的,确保你的数据节点具有足够的物理内存来容纳该值,由于我这是使用虚拟机测试,
                  所以设置的偏小,你可以依照实际环境来定义此值

IndexMemory=10M #该参数用于控制cluster中哈希(混编)索引所使用的存储量

[ndb_mgmd]
nodeid=1        #cluster中的每个节点都有唯一的标识,由从1到63的整数表示
hostname=192.168.1.41  #定义管理节点ip
datadir=/usr/mysql-cluster #它用于设置保存管理服务器输出文件的位置。
  这些文件包括cluster日志文件、进程输出文件、以及端口监督程序的pid文件

[ndbd]
nodeid=2 
hostname=192.168.1.43  #定义数据节点ip
datadir=/usr/local/ndbdata #该参数指定了存放跟踪文件、日志文件、
                           pid文件以及错误日志的目录

[ndbd]
nodeid=4
hostname=192.168.1.45
datadir=/usr/local/ndbdata 

[mysqld]
nodeid=3
hostname=192.168.1.44      #定义sql节点ip


[mysqld]
nodeid=5
hostname=192.168.1.42

[mysqld]

数据节点配置:

[root@cluster3 ~]# rpm -ivh MySQL-Cluster-gpl-storage-7.1.18-1.el6.x86_64.rpm 
[root@cluster3 ~]# mkdir -p /usr/local/mysql/ndbdata
[root@cluster3 ~]# vi /etc/my.cnf
[mysqld]
ndbcluster
ndb-connectstring=192.168.1.41
[mysql_cluster]
ndb-connectstring=192.168.1.41

sql节点配置:

[root@cluster4 ~]# rpm -ivh MySQL-Cluster-gpl-client-7.1.18-1.el6.x86_64.rpm 
[root@cluster4 ~]# rpm -ivh MySQL-Cluster-gpl-server-7.1.18-1.el6.x86_64.rpm 
[root@cluster4 ~]# cd /usr/share/doc/MySQL-Cluster-gpl-server-7.1.18/
[root@cluster4 MySQL-Cluster-gpl-server-7.1.18]# cp my-medium.cnf /etc/my.cnf
//如果你的内存≤64M,则复制/usr/share/mysql/my-small.cnf为/etc/my.cnf
//如果内存是128M,则复制/usr/share/mysql/my-medium.cnf为/etc/my.cnf
//如果内存是512M,则复制/usr/share/mysql/my-large.cnf为/etc/my.cnf
//如果内存是1-2G,则复制/usr/share/mysql/my-huge.cnf为/etc/my.cnf
//如果内存是4G,则复制/usr/share/mysql/my-innodb-heavy-4G.cnf为/etc/my.cnf
[root@cluster4 MySQL-Cluster-gpl-server-7.1.18]# vi /etc/my.cnf
[mysqld]
....
ndbcluster
(以下数据添加在[mysqld]区域的最下方)
ndb-connectstring=192.168.1.41
[mysql_cluster]
ndb-connectstring=192.168.1.41


首先启动管理节点,然后启动存储节点,最后启动SQL节点

管理节点:

[root@cluster1 ~]# ndb_mgmd -f /usr/mysql-cluster/config.ini

数据节点:

[root@cluster3 ~]# ndbd --initial

sql节点:

[root@cluster4 ~]# /etc/init.d/mysql start

测试:

管理节点:

[root@cluster1 ~]# ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> show
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)]    2 node(s)
id=2    @192.168.1.43  (mysql-5.1.56 ndb-7.1.18, Nodegroup: 0, Master)
id=4    @192.168.1.45  (mysql-5.1.56 ndb-7.1.18, Nodegroup: 1)

[ndb_mgmd(MGM)]    1 node(s)
id=1    @192.168.1.41  (mysql-5.1.56 ndb-7.1.18)

[mysqld(API)]    3 node(s)
id=3    @192.168.1.44  (mysql-5.1.56 ndb-7.1.18)
id=5    @192.168.1.42  (mysql-5.1.56 ndb-7.1.18)
id=6 (not connected, accepting connect from any host)

ndb_mgm>











你可能感兴趣的:(mysql集群,msyql_cluster,mysql_cluster配置)