Skip to content

第19章 MySQL Cluster

学习目标 | Objective

MySQL Cluster 技术在分布式系统中为MySQL提供了冗余特性,增强了安全性,可以大大提高系统的可靠性和数据的有效性。MySQL Cluster需要一组计算机,每台计算机可以理解为一个节点,这些节点的功能各不相同,MySQL Cluster按照功能来分,可以分为三种节点:管理节点、数据节点和SQL节点。集群中的某台计算机可以是某一个节点,也可以是两种或者三种节点的集合,这些节点组合在一起,为应用提供具有高可靠性、高性能的 Cluster 数据管理。

内容导航 | Navigation

  • 了解什么是MySQL Cluster
  • 掌握 Linux下MySQL Cluster 的安装和配置
  • 掌握 MySQL Cluster 的管理方法
  • 掌握MySQL Cluster的维护方法
  • Windows 下的集群配置方法

19.1 MySQL Cluster概述

目前企业数据量越来越大,所以对MySQL的要求进一步提高。以前的大部分高可用方案通常存在一定的缺陷,例如 MySQLReplication方案,Master 是否存活检测需要一定的时间,如果主从切换也需要一定的时间,因此高可用很大程度上依赖于监控软件和自动化管理工具。

随着 MySQL Cluster 的不断发展,终于在性能和高可用上得到了很大的提高。

19.1.1 MySQL Cluster基本概念

MySQL Cluster 简单地讲是一种 MySQL集群的技术,是由一组计算机构成的,每台计算机可以存放一个或者多个节点,其中包括MySQL服务器、DNB Cluster 的数据节点、其他管理节点,以及专门的数据访问程序,这些节点组合在一起,就可以为应用提供高性能、高可用性和可缩放性的 Cluster 数据管理。

MySQL Cluster 的访问过程大致是这样的,应用通常使用一定的负载均衡算法将对数据的访问分散到不同的SQL节点,SQL节点对数据节点进行数据访问并从数据节点返回数据结果,管理节点仅仅只是对 SQL节点和数据节点进行配置管理,MySQL Cluster 的系统架构如图 19.1所示。

19.1.2 理解MySQL Cluster节点

MySQL Cluster 按照节点类型可以分为3种类型的节点,分别是管理节点、SQL节点、数据节点,所有的这些节点构成了一个完整的MySQL集群体系。事实上,数据保存在 NDB 存储服务器的存储引擎中,表结构则保存在MySQL服务器中,应用程序通过MySQL服务器访问数据,而集群管理服务器则通过管理工具ndbmgmd来管理NDB存储服务器。

下面先了解一下 MySQL Cluster中3种不同类型的节点。

1.管理节点

管理节点主要用来对其他节点进行管理。通常通过配置confg.ini 文件来配置集群中有多少需要维护的副本,配置每个数据节点上为数据和索引分配多少内存、IP地址,以及在每个数据节点上保存数据的磁盘路径。

管理节点通常管理 Cluster 配置文件和 Cluster 日志。Cluster 中的每个节点从管理服务器检索配置信息,并请求确定管理服务器所在位置的方式。如果节点内出现新的事件时,节点将这类事件的信息传输到管理服务器,将这类信息写入到Cluster日志中。

一般在 MySQL Cluster 体系中至少需要一个管理节点,另外值得注意的是,因为数据节点和 SQL节点在启动之前需要读取Cluster 的配置信息,所以通常管理节点是最先启动的。

2.SQL 节点

SQL节点简单地讲就是MySQLd服务器,应用不能直接访问数据节点,只能通过 SQL节点访问数据节点来返回数据。任何一个SQL节点都是连接到所有的存储节点的,所以当任何一个存储节点发生故障的时候,SQL 节点都可以把请求转移到另一个存储节点执行。通常来说,SQL节点越多越好,SQL节点越多,分配到每个SQL节点的负载就越小,系统的整体性能就越好。

3.数据节点

数据节点用来存放Cluster 里面的数据,MySQL Cluster 在各个数据节点之间复制数据,任何一个节点发生了故障,始终会有另外的数据节点存储数据。

通常这3种不同逻辑的节点可以分布在不同的计算机上面,集群最少有3台计算机,为了保证能够正常维护整个集群服务,通常将管理节点放在一个独立的主机上。

19.2 Linux环境下MySQL Cluster安装和配置

19.2.1 安装MySQL Cluster软件

19.2.2 管理节点配置步骤

19.2.3 配置SQL节点和数据节点

19.3 管理MySQL Cluster

19.3.1 Cluster的启动

19.3.2 Cluster的测试

19.3.3 Cluster的关闭

19.4 维护MySQL Cluster

19.4.1 Cluster的日志管理

19.4.2 Cluster的联机备份

19.4.3 Cluster的数据恢复

19.5 Windows操作系统中配置Cluster

19.6 专家解惑

19.7 经典习题