MySQL Cluster 概念详解

数据库 MySQL
以下的文章主要介绍的是MySQL Cluster 的基本概念以及MySQL Cluster在实际操作中的具体应用,以下的文章就是对相关内容的描述。

我们大家都知道MySQL Cluster 是一种技术,其主要功能是在无共享的相关系统中部署内存中数据库的 Cluster 。在通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。

此外,由于每个组件有自己的内存和磁盘,不存在单点故障。

 

MySQL Cluster 由一组计算机构成,每台计算机上均运行着多种进程,包括MySQL服务器,NDB Cluster 的数据节点,管理服务器,以及(可能)专门的数据访问程序。关于 Cluster 中这些组件的关系,请参见下图:

 

MySQL Cluster

所有的这些节点构成一个完成的MySQL集群体系。数据保存在“NDB存储服务器”的存储引擎中,表(结构)则保存在“MySQL服务器”中。应用程序通过“MySQL服务器”访问这些数据表,集群管理服务器通过管理工具(ndb_mgmd)来管理“NDB存储服务器”。

通过将MySQL Cluster 引入开放源码世界,MySQL为所有需要它的人员提供了具有高可用性、高性能和可缩放性的 Cluster 数据管理。

 

MySQL Cluster 基本概念

 

“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。

管理客户端:这类客户端与管理服务器相连,并提供了启动和停止节点、启动和停止消息跟踪(仅调试版本)、显示节点版本和状态、启动和停止备份等的命令。

 

 【编辑推荐】

  1. MySQL filter的实际配置
  2. Mysql安装与qmail实际操作概述
  3. MySQL 数据库的双机热备实际操作配置
  4. MySQL 安装备份在Linux系统中的安装
  5. 解决MySQL中文乱码的方法归纳
责任编辑:佚名 来源: 博客园
相关推荐

2011-08-18 16:03:48

数据切分MySQL

2009-12-16 14:51:26

Ruby nil

2023-09-14 09:54:01

Btrfs文件系统

2010-07-12 13:20:18

UML协作图

2010-07-14 15:23:19

Perl文件句柄

2010-02-02 11:16:28

C++异常

2009-12-28 16:54:30

WPF注释

2009-12-31 16:56:40

Silverlight

2009-12-18 15:24:52

2020-12-04 06:36:04

协议Redis数据量

2010-07-20 16:05:07

Perl包

2009-12-29 17:25:36

Silverlight

2010-07-12 09:43:38

Symbian开发

2009-12-24 15:36:41

WPF逻辑树

2009-12-25 17:48:43

WPF资源路径

2009-12-28 16:28:35

WPF元素类型样式

2009-12-16 16:24:00

Ruby on Rai

2009-12-29 18:29:09

Silverlight

2010-09-14 09:41:56

DIV技术DIV标签

2009-12-30 14:36:29

Silverlight
点赞
收藏

51CTO技术栈公众号