mysql 集群

我们大家都知道MySQL Cluster 是一种技术,其主要功能是在无共享的相关系统中部署内存中数据库的 Cluster 。在通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。MySQL Cluster 由一组计算机构成,每台计算机上均运行着多种进程,包括MySQL服务器,NDB Cluster 的数据节点,管理服务器,以及(可能)专门的数据访问程序。
所有的这些节点构成一个完成的MySQL集群体系。数据保存在“NDB存储服务器”的存储引擎中,表(结构)则保存在“MySQL服务器”中。应用程序通过“MySQL服务器”访问这些数据表,集群管理服务器通过管理工具(ndb_mgmd)来管理“NDB存储服务器”。通过将MySQL Cluster 引入开放源码世界,MySQL为所有需要它的人员提供了具有高可用性、高性
能和可缩放性的 Cluster 数据管理。

详细请参考一下官方文档:
http://dev.mysql.com/doc/refman/5.1/zh/ndbcluster.html

mysql cluster构建
从www.mysql.com上下载所需软件
MySQL-Cluster-gpl-client-7.1.4b-1.rhel5.i386.rpm
MySQL-Cluster-gpl-management-7.1.4b-1.rhel5.i386.rpm
MySQL-Cluster-gpl-server-7.1.4b-1.rhel5.i386.rpm
MySQL-Cluster-gpl-storage-7.1.4b-1.rhel5.i386.rpm
MySQL-Cluster-gpl-tools-7.1.4b-1.rhel5.i386.rpm

管理节点配置:
rpm -ivh MySQL-Cluster-gpl-management-7.1.4b-1.rhel5.i386.rpm
rpm -ivh MySQL-Cluster-gpl-tools-7.1.4b-1.rhel5.i386.rpm

mkdir -p /usr/mysql-cluster/
vi /usr/mysql-cluster/config.ini
[ndbd default]
noofreplicas=1
datamemory=30M
indexmemory=10M

[ndb_mgmd]
nodeid=1
hostname=192.168.0.61
datadir=/usr/mysql-cluster

[ndbd]
nodeid=2
hostname=192.168.0.97
datadir=/usr/mysql-cluster

[ndbd]
nodeid=3
hostname=192.168.0.235
datadir=/usr/mysql-cluster

[mysqld]
nodeid=4
hostname=192.168.0.64

[mysqld]
nodeid=5
hostname=192.168.0.149

[mysqld]         #此为空闲mysql,用于数据库恢复

ndb_mgmd  -f /usr/mysql-cluster/config.ini  #首次启动后面不需要接 --initial
ls /usr/mysql-cluster/
ndb_1_cluster.log  ndb_1_config.bin.1  ndb_1_out.log  ndb_1.pid #会生成这些文件
ndb_mgm
show        #可以查看定义的各主机
如果在管理节点想要关闭全部主机,则shutdown 就可以了。如果想要关闭某个主机,则2(show 的时候主机对应的id 号) stop 就可以了。但是关闭的时候最少得保留一台数据节点。

数据节点配置:
scp MySQL-Cluster-gpl-storage-7.1.18-1.el6.x86_64.rpm 192.168.0.235:
rpm -qa | grep mysql          #查看是否已经安装过mysql,如果安装了,则需卸掉
rpm -ivh MySQL-Cluster-gpl-storage-7.1.4b-1.rhel5.i386.rpm
mkdir -p /usr/local/mysql/ndbdata

cp /etc/my.cnf   /etc/my.cnf.bak
vim /etc/my.cnf
[mysqld]
ndbcluster
ndb-connectstring=192.168.0.61

ndbd --initial      #首次启动需要加 --initial,直接ndbd就启动了。显示下面的信息。
2012-09-08 07:01:18 [ndbd] INFO     -- Angel connected to '192.168.0.61:1186'
2012-09-08 07:01:18 [ndbd] INFO     -- Angel allocated nodeid: 2
[mysql_cluster]
ndb-connectstring=192.168.0.61
另一个数据节点安装方法同上面的步骤。此时可以在管理节点show 查看启动情况。

sql节点配置:
rpm -qa | grep mysql          #查看是否已经安装过mysql,如果安装了,则需卸掉
rpm -ivh MySQL-Cluster-gpl-server-7.1.4b-1.rhel5.i386.rpm  --nodeps
rpm -ivh MySQL-Cluster-gpl-client-7.1.4b-1.rhel5.i386.rpm  --nodeps
安装好后在/var/lib/mysql 目录会生成3个目录:ndbinfo test mysql。如果之前安装过mysql,则需将/var/lib/mysql 目录 的文件全删除,再 mysql_install_db  --user=mysql.

如果你的内存≤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
cp /usr/share/doc/MySQL-Cluster-gpl-server-7.1.18/my-medium.cnf  /etc/my.cnf
vim /etc/my.cnf
在[mysqldump] 的上面添加以下几行
ndbcluster
ndb-connectstring=192.168.0.61

[mysql_cluster]
ndb-connectstring=192.168.0.61

然后启动服务:/etc/init.d/mysqld start    #另一个sql节点安装方法同上面的步骤,可以在管理节点 show  查看启动情况。只有当所有的数据节点都启动了,mysql服务才能启动成功。

你可能感兴趣的:(mysql,集群)