什么是集群?
为了减少数据中心结点压力和大数据量处理,采用把MySQL分布部署的方法,一个或多个application对应一个MySQL数据库。把几个MySQL数据库公用的数据做出共享数据,存在数据结点里面。其他不共享的数据还维持在各自分布的MySQL数据库本身中。结构如下图:
上图是一个标准的MYSQL集群架构图,如图所示,一个MYSQL可以包含四个部分:Client/APIs、SQL Nodes、DataNodes和NDBManagement Server。
1)SQL Node:分布式数据库。包括自身数据和查询中心结点数据.
2)Client/APIs:数据库访问接口,我们通常使用的是mysqld,但在不同的场合,结合不同的编程语言、技术,他会表现成不同的形式,有可能是个命令行界面,当然也有可能是个网页。
3)数据结点(Datanode):集群共享数据(内存中).
4)管理服务器(ManagementServer–ndb_mgmd):集群管理SQL node,Data node.
集群环境规划
一、初步规划
按照上节的架构图,对我想要搭建的MYSQL集群环境做初步如下规划:
管理节点: 192.168.143.110
数据节点,SQL节点(0):192.168.143.240
数据节点,SQL节点(1):192.168.143.241
二、选择操作系统
在操作系统选择上面,我耽误了很长的时间,原因主要是因为对vmware软件的不了解,和对软件的部署环境没有准确的认识。所以,在安装软件之前,先了解这个软件的版本可以部署的操作系统类型(包括厂家,硬件架构等)是非常重要的。
最后,在不断的尝试的体验下,MYSQL集群主要可以部署在如下系统上:
其中Suse Linux Enterprise Server只提供了64位的版本。而vmware一般只提供32位的虚拟服务。(实际部署时,应该考虑suse)
考虑到RedHat的升级比较繁琐,所以测试环境选择了Debian Linux。版本为6.0.
DebianLinux 6.0下载地址为: http://www.debian.org/distrib/
而因为硬件的限制,用于部署管理节点的电脑只能用现有的Windows系统。(顺便测试一下跨平台部署?)
三、选择软件
结合软件版本以及其使用的操作系统版本。最终选择MySQL Cluster 7.3.3,下载地址:
http://dev.mysql.com/downloads/cluster/
四、最终方案
节点类型 |
IP |
主机名 |
操作系统 |
软件版本 |
管理节点 |
192.168.143.110 |
Pc |
Windows 7 |
MySQL Cluster 7.3.3 |
数据和SQL节点1 |
192.168.143.240 |
Mysql-1 |
Debian Linux 6.0 |
MySQL Cluster 7.3.3 |
数据和SQL节点2 |
192.168.143.241 |
Mysql-2 |
Debian Linux 6.0 |
MySQL Cluster 7.3.3 |
部署环境
一、配置管理节点
因为管理节点是部署在Windows上的,先下载windows版的安装文件,默认安装在C:\,安装完后,C:\ProgramFiles\下会多出Mysql的文件夹,文件夹内容如下:
(1)在C:\根目录下新建mysql文件夹,然后在集中新建bin和mysql-cluster文件夹,在新建的bin文件夹中再新建cluster-logs文件夹。
(2)在bin文件夹中,新建2个文件config.ini和my.ini,并且把C:\ProgramFiles\MySQL\MySQL Cluster 7.3\bin下的ndb_mgm.exe和ndb_mgmd.exe拷过来。
做完前两步后,C:/mysql下的目录架构应该是这样的: