一 MySQL-Cluster简介
MySQL Cluster是一种技术,该技术允许在无共享的系统中部署“内存中”数据库的簇。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件都有自己的内存和磁盘,所以不存在单点故障。
MySQL簇将标准的MySQL服务器与名为NDB的“内存中”的簇式存储引擎集成了起来。术语NDB指的是与存储引擎相关的设置部分,而术语“MySQL簇”指的是MySQL和NDB存储引擎的组合。
MySQL簇由一组计算机构成,每台计算机上均运行着多种进程,包括MySQL服务器,NDB簇的数据节点,管理服务器(MGM),以及(可能)专门的数据访问程序。关于簇中这些组件的关系,如下图:
所有这些程序一起构成了MySQL簇。将数据保存到NBD簇引擎中时,表将保存在数据节点内。能够从簇中所有其他MySQL服务器直接访问这些表。因此,假如在将数据保存在簇内的工资应用程序中,如果某一应用程序更新了一位雇员的工资,所有查询该数据的其他MySQL 服务器能立刻发现这种变化。
对于MySQL簇,保存在数据节点的数据可被映射,簇能够处理单独数据节点的故障,除了少数事物将因事物状态丢失而被放弃外,不会产生其他影响。由于事物性应用程序能够处理失败事宜,因而它不是问题源。
二 MySQL簇的基本概念
NDB 是一种“内存中”存储引擎,它具有可用性高和数据一致性好的特点。
能够使用多种故障切换和负载平衡选项配置NDB 存储引擎,但以簇层面上的存储引擎开始最简单。MySQL簇的NDB存储引擎包含完整的数据集,仅取决于簇本身内的其他数据。
下面名,我们将介绍设置由NDB存储引擎和一些MySQL服务器构成的MySQL簇的设置方法。
目前,MySQL簇的部分可以独立于MySQL服务器进行配置。在MySQL簇中,簇的每个部分被视为一个节点。
注释:在很多情况下,术语“节点”用于指计算机,但在讨论MySQL簇时,它表示的是进程。在单台计算机上可以有任意数目的节点,所以我们才有可能将多个不同功能的节点配置在同一台计算机上,为此,我们采用术语簇主机。
有三类簇节点,在最低的MySQL簇配置中,至少有三个节点,这三类节点分别是:
管理节点(MGM):这类节点的作用是管理MySQL簇内的其他节点,如提供配置数据,启动并停止节点,运行备份等。由于这类节点负责管理其他节点的配置,所以管理节点应在其他节点之前先启动。MGM节点是用命令ndb_mgm启动的。
数据节点(NDB):这类节点用于保存簇的数据。数据集点的数目与副本的数目相关,是片段的倍数。例如,对于两个副本,每个副本又两个片段,那么就有4个数据节点。没有必要有一个以上的副本。。数据节点是用命令ndbd来启动的。
SQL节点:这类节点是用来访问簇数据的节点。对于MySQL簇,客户端节点是使用NDB 簇存储引擎的传统MySQL服务器。典型情况下,SQL节点是使用命令mysql -ndbcluster来启动的,或将ndbcluster添加到my.cnf后面使用mysqld启动。
簇配置包括对簇中单独节点的配置,以及设置节点之间的单独通信链路。对于目前设计的MySQL簇,其意图在于,从处理器的能力,内存空间和宽带来讲,存储节点是同质的,此外,为了提供单一的配置点,作为整体,簇的所有配置均位于一个文件中。
管理服务器(MGM节点)负责管理簇配置文件和簇日志。簇中的每个节点从管理服务器检索配置数据,并请求确定管理服务器所在的位置的方式。当数据节点内出现有趣的事件时,节点将关于这类事件的信息传输到管理服务器,然后,啊经这类信息写入簇日志。
三 实验环境
实验过程中,只是用两台计算机来实现MySQL-Cluster环境的配置,具体环境如下:
管理节点(MGM)服务器:192.168.3.47 主机名:songzi nodeid=1
数据节点1(NDB ):192.168.3.47 nodeid=11
数据节点2(NDB):192.168.4.128 nodeid=12
SQL节点1:192.168.3.47 nodeid=21
SQL节点2:192.168.4.128 nodeid=22
其中192.168.3.47安装的为Ubuntu12.04的32位操作系统,192.168.4.128安装的为ubuntu12.04的64位操作系统。
对于MySQL-Cluster的安装包下载,下载地址见 ,其中192.168.3.47的操作系统为32位的linux,所以选择的下载版本为:mysql-cluster-gpl-7.3.3-linux-glibc2.5-i686.tar.gz。而192.168.4.128为64 位的linux操作系统,所以选择的下载版本为:mysql-cluster-gpl-7.3.3-linux-glibc2.5-x86_64.tar.gz。在终端中执行 :uname -m指令可查看操作系统的信息,若结果显示为i686,则为32位操作系统。若结果为x86_64,则为64位操作系统。务必选择正确的版本,并下载。
此外 如果之前安装过mysql-server,在进行此次实验之前,需要将mysql-server卸载,执行以下指令卸载mysql
sudo apt-get autoremove --purge mysql-server
sudo apt-get remove mysql-server
sudo apt-get autoremove mysql-server
sudo apt-get remove mysql-common (非常重要)
四 安装