MYSQL
集群方案调研报告
调研人:罗志威、黄川
MYSQL CLUSTER
方案介绍
方案介绍
MySQL Cluster
是
MySQL
适合于分布式计算环境的高实用、
高冗余版本。
它采用了
NDB
Cluster
存储引擎,
允许在
1
个
Cluster
中运行多个
MySQL
服务器。
在
MyQL 5.0
及以上的二
进制版本中、以及与最新的
Linux
版本兼容的
RPM
中提供了该存储引擎。
(注意,要想获得
MySQL Cluster
的功能,必须安装
mysql-server
和
mysql-max RPM
)
目前能够运行
MySQL Cluster
的操作系统有
Linux
、
Mac OS X
和
Solaris,
最新版本
MySQL
Cluste7.1.10
支持更多操作系统,
包括
Windows
。
MySQL Cluster
所有的这些节点构成一个完
成的
MySQL
集群体系。数据保存在
“NDB
存储服务器
”
的存储引擎中,表(结构)则保存在
“MySQL
服务器
”
中。
应用程序通过
“MySQL
服务器
”
访问这些数据表,
集群管理服务器通过管
理工具
(ndb_mgmd)
来管理
“NDB
存储服务器
”
。
“NDB”
是一种
“
内存中
”
的存储引擎,它具有可用性高和数据一致性好的特点。
MySQL
Cluster
能够使用多种故障切换和负载平衡选项配置
NDB
存储引擎,但在
Cluster
级别上的
存储引擎上做这个最简单。
MySQL Cluster
的
NDB
存储引擎包含完整的数据集,仅取决于
Cluster
本身内的其他数据。
目前,
MySQL Cluster
的
Cluster
部分可独立于
MySQL
服务器进行配置。
在
MySQL Cluster
中,
Cluster
的每个部分被视为
1
个节点。管理
(MGM)
节点:这类节点的作用是管理
MySQL
Cluster
内的其他节点,如提供配置数据、启动并停止节点、运行备份等。由于这类节点负
责管理其他节点的配置,应在启动其他节点之前首先启动这类节
点。
MGM
节点是用命令
“ndb_mgmd”
启动的。
数据节点:这类节点用于保存
Cluster
的数据。数据节点的数目与副
本的数目相关,是片段的倍数。例如,对于两个副本,每个副本有两个片段,那么就有
4
个数据节点。不过没有必要设
置多个副本。数据节点是用命令
“ndbd”
启动的。
SQL
节点:
这是用来访问
Cluster
数据的节点。对于
MySQL Cluster
,客户端节点是使用
NDB Cluster
存
储引擎的传统
MySQL
服务器。
通常,
SQL
节点是使用命令
“mysqld –ndbcluster”
启动的,
或将
“ndbcluster”
添加到
“my.cnf”
后使用
“mysqld”
启动。
注释:在很多情况下,术语
“
节点
”
用于指
计算机,但在讨论
MySQL Cluster
时,它表示的是进程。在单台计算机上可以有任意数目的
节点,为此,我们采用术语
“ Cluster
主机
”
。
管理服务器
(MGM
节点
)
负责管理
Cluster
配置文件和
Cluster
日志。
Cluster
中的每个节
点从管理服务器检索配置数据,
并请求确定管理服务器所在位置的方式。
当数据节点内出现
新的事件时,
节点将关于这类事件的信息传输
到管理服务器,
然后,
将这类信息写入
Cluster
日志。
此外,可以有任意数目的
Cluster
客户端进程或应用程序。它们分为两种类型:
标准
MySQL
客户端:对于
MySQL Cluster
,它们与标准的(非
Cluster
类)
MySQL
没有区别。换句
话讲,能够从用
PHP
、
Perl
、
C
、
C++
、
Java
、
Python
、
Ruby
等编写的现有
MySQL
应用
程序
访问
MySQL Cluster
。
管理客户端:这类客户端与管理服务器相连,并提供了启动和停止节
点、
启动和停止消息跟踪
(仅调试版本)
、
显示节点版本和状态、
启动和停止备份等的命令。