日期:2014-05-16  浏览次数:20748 次

项目进阶 之 集群环境搭建(二)MySQL集群
        上次的博文中我们介绍了一下集群的相关概念,今天的博文我们介绍一下MySQL集群的相关内容。

1、MySQL集群简介

        MySQL群集技术在分布式系统中为MySQL数据提供了冗余特性,增强了安全性,使得单个MySQL服务器故障不会对系统产生巨大的负面效应,系统的稳定性得到保障。
        MySQL群集需要有一组计算机,每台计算机的角色可能是不一样的。MySQL群集中有三种节点:管理节点、数据节点和SQL节点。群集中的某计算机可能是某一种节点,也可能是两种或三种节点的集合。这三种节点只是在逻辑上的划分,所以它们不一定和物理计算机是一一对应的关系。

        管理节点(也可以称管理服务器)主要负责管理数据节点和SQL节点,还有群集配置文件和群集日志文件。它监控其他节点的工作状态,能够启动、关闭或重启某个节点。其他节点从管理节点检索配置数据,当数据节点有新事件时就把事件信息发送给管理节点并写入群集日志。
        数据节点用于存储数据。
        SQL节点跟一般的MySQL服务器是一样的,我们可以通过它进行SQL操作。

下图中画出了三种群集节点及应用程序间的关系:


2、MySQL集群安装配置

        下载MySQL集群:http://dev.mysql.com/downloads/cluster/

         mysql-cluster-gpl-7.3.5-winx64.zip:
                http://cdn.mysql.com/Downloads/MySQL-Cluster-7.3/mysql-cluster-gpl-7.3.5-winx64.zip
        mysql-cluster-gpl-7.3.5-win32.zip:
                http://cdn.mysql.com/Downloads/MySQL-Cluster-7.3/mysql-cluster-gpl-7.3.5-win32.zip

        1)、MySQL简介

        首先找三台电脑,或者是开三个虚拟机,管理节点部署在一台机子上,其他两台每台都部署一个数据节点和一个SQL节点。这里以两台机子举例,其中一台(IP为192.168.24.16)部署管理节点、数据节点和SQL节点,另一台(IP为192.168.24.43)部署数据节点和SQL节点。
实际应用中,不要将管理节点跟数据节点部署到一台机子上,因为如果数据节点宕机会导致管理节点不可用,同时整个MySQL群集也就都不可用了。所以一个MySQL群集理想情况下至少有三台服务器,将管理节点单独放到一台服务器上。这里以两台举例,只是为了说明三种节点的配置启动方法。

        2)、配置管理节点

        1、在IP为192.168.24.16的主机的C盘中新建文件夹mysql,然后在此文件夹下新建子目录bin和mysql-cluster,再将安装包中的bin目录下的ndb_mgm.exe和ndb_mgmd.exe拷贝到C:\mysql\bin下。在目录C:\mysql\bin下新建cluster-logs目录、config.ini文件和my.ini文件。
        2、config.ini文件内容如下:

[ndbd default] 
# Options affecting ndbd processes on all data nodes: 
# Number of replicas
NoOfReplicas=2 
DataDir=c:/mysqlcluster/datanode/mysql/bin/cluster-data     
# Directory for each data node's data files                             
# Memory allocated to data storage 													
DataMemory=80M
# Memory allocated to index storage    
IndexMemory=18M                      
# For DataMemory and IndexMemory, we have used the                   
# default values.

[ndb_mgmd] 
# Management process options:
# Hostname or IP address of management node  
HostName=192.168.24.16             
# Directory for management node log files 
DataDir=C:/mysql/bin/cluster-logs

[ndbd] 
# Options for data node "A":                                
# (one [ndbd] section per data node) 
# Hostname or IP address
HostName=192.168.24.16        

[ndbd] 
# Options for data node "B": 
# Hostname or IP address
HostName=192.168.24.43          

[mysqld] 
# SQL node options: 
# Hostname or IP address
HostName=192.168.24.16     

[mysqld] 
# SQL node options: 
# Hostname or IP address
HostName=192.168.24.43  

        3、my.ini中的内容如下: