前言:
MySQL集群是一个无共享的、分布式节点架构的存储方案,旨在提供容错性和高性能。它由三个主要节点组成:管理节点(MGM)、数据节点和SQL节点。
-
管理节点(MGM)
- 定义与用途:管理节点是MySQL Cluster的控制中心,负责管理集群内的其他节点。它提供配置数据,启动和停止节点,运行备份等。
- 工作原理:管理节点会定期从其他节点收集信息,并基于这些信息来管理集群的状态。例如,当某个数据节点或SQL节点出现故障时,管理节点会检测到这种情况,并可能触发相应的恢复或容错机制。
- 示例:在一个包含多个数据节点和SQL节点的集群中,管理节点负责确保所有节点都保持同步,并根据需要分配或重新分配工作负载。
-
数据节点
- 定义与用途:数据节点是保存Cluster数据的节点。它们存储实际的数据,并处理与数据相关的操作(如插入、更新、删除等)。
- 工作原理:数据节点使用NDB Cluster存储引擎来存储和管理数据。它们通过网络与其他节点(包括SQL节点和管理节点)进行通信,以确保数据的一致性和同步。当数据节点接收到来自SQL节点的请求时,它会执行相应的操作,并将结果返回给SQL节点。
- 示例:在一个电子商务应用中,订单数据和用户数据可能存储在数据节点中。当用户提交订单时,SQL节点会向数据节点发送请求以更新订单状态。数据节点会执行此操作,并将更新后的订单数据返回给SQL节点。
-
SQL节点
- 定义与用途:SQL节点主要用于提供MySQL服务,作为访问Cluster数据的接口。客户端(如应用程序或数据库管理员)通过SQL节点与集群进行交互。
- 工作原理:SQL节点接收来自客户端的请求,并将这些请求转发给适当的数据节点进行处理。然后,它将数据节点的响应返回给客户端。如果某个数据节点出现故障,SQL节点可以将请求转发到其他可用的数据节点,以确保高可用性。
- 示例:在一个工资单应用程序中,员工可以通过SQL节点查询和更新他们的工资信息。当员工提交工资更改请求时,SQL节点会处理此请求,并将相应的更新操作转发给数据节点。数据节点会执行更新操作,并将结果返回给SQL节点,然后由SQL节点将结果返回给员工。
节点之间的关系与交互
这三个节点之间通过网络进行通信和交互。管理节点负责监控整个集群的状态,并根据需要调整配置或执行恢复操作。数据节点存储实际的数据,并处理与数据相关的操作。SQL节点作为客户端与集群之间的接口,负责接收请求、转发请求和处理响应。
当客户端向SQL节点发送请求时,SQL节点会根据请求的类型和内容将其转发给适当的数据节点。数据节点会执行请求中的操作,并将结果返回给SQL节点。然后,SQL节点将结果返回给客户端。如果某个数据节点出现故障,管理节点会检测到这种情况,并触发相应的容错机制(如将工作负载重新分配给其他数据节点)。
这种分布式架构使得MySQL集群能够提供高可用性和高性能。通过将多个节点组合在一起并共同处理请求,MySQL集群可以处理更多的并发请求,并减少单点故障的风险。
一、服务器规划
共四台服务器:一台管理节点,一台数据节点,两台SQL节点
服务器均为centos7 x86 64位虚拟机
管理节点:192.168.131.129
数据节点:192.168.131.132
SQL 节点: 192.168.131.131, 192.168.131.133
二、mysql-cluster安装包
下载地址:https://downloads.mysql.com/archives/cluster/
筛选条件:
Product Version: 7.6.7
Operating System: Linux-Generic
OS Version:看下方图片
点击后方的 Download 进行下载,国内下载较慢可以采用IDM, NDM等工具进行快速下载,
下载后的文件名称为: mysql-cluster-gpl-7.6.7-linux-glibc2.12-x86_64.tar.gz
三、服务器原mysql清理
上述四台服务器均需此操作
1.查看mysql安装的rpm包情况:
rpm -qa | grep mysql