mysql cluster7.5集群安装指南

标签: mysql cluster7.5


关于mysqlcluster的安装,网上文章良莠不济,大多数都是错误的过时的.

由于项目需要搭建一个mysql集群,最后选定了 mysql cluster7.5

期间踩了各种坑,最后才在mysqlcluster的官网上熟读了官网文档后才搭建完成,投入使用.

最后总结出此文帮助后来者少踩坑.另外学习一门新知识最好去它的官网,少踩坑.

参考资料: mysqlcluster官网
mysql cluster搭建

概念

 MySQL Cluster是基于无共享的可由多台服务器组成的、同时对外提供数据管理服务的分布式集群系统。通过合理的配置,可以将服务请求在多台物理机上分发实现负载均衡 ;同时内部实现了冗余机制,在部分服务器宕机的情况下,整个集群对外提供的服务不受影响,从而能达到99.999%以上的高可用性。
 
  MySQL Cluster设计之初出于性能考虑,将数据完全存放在内存当中,因此MySQL Cluster可以当作一种分布式的内存数据库。随着MySQL Cluster技术的成熟和需求的增加,目前MySQL Cluster已支持磁盘存储,可以指定数据表存储在磁盘上,减少MySQL Cluster集群对内存的需求,从而实现存储更大的容量。

mysql cluster7.5集群安装指南_第1张图片

MySQL从结构看,由3类节点(计算机或进程)组成,分别是:

  • 管理(MGM)节点:这类节点的作用是管理MySQL Cluster内的其他节点,如提供配置数据、启动并停止节点、运行备份等。由于这类节点负责管理其他节点的配置,应在启动其他节点之前首先启动这类节点。MGM节点是用命令“ndb_mgmd”启动的。
    配置文件为: config.ini

  • 数据节点:这类节点用于保存 Cluster的数据。数据节点的数目与副本的数目相关,是片段的倍数。例如,对于两个副本,每个副本有两个片段,那么就有4个数据节点。不过没有必要设置多个副本。数据节点是用命令“ndbd”启动的。
    配置文件为:my.ini

  • SQL节点:这是用来访问 Cluster数据的节点。对于MySQL Cluster,客户端节点是使用NDB Cluster存储引擎的传统MySQL服务器。通常,SQL节点是使用命令“mysqld –ndbcluster”启动的,或将“ndbcluster”添加到“my.cnf”后使用“mysqld”启动。
    配置文件为:my.ini

“MySQL实验室”推荐使用MySQL Cluster 7.x版本。MySQL Cluster 7.x拥有在线增加节点、多线程等新特性。

工作原理

管理服务器(MGM节点)负责管理 Cluster配置文件和 Cluster日志。 Cluster中的每个节点从管理服务器检索配置数据,并请求确定管理服务器所在位置的方式。当数据节点内出现新的事件时,节点将关于这类事件的信息传输到管理服务器,然后,将这类信息写入 Cluster日志。

安装

节点说明:

mysql cluster7.5集群安装指南_第2张图片

表21.4示例群集中节点的网络地址

节点 IP地址

管理节点(mgmd) 198.51.100.10

SQL节点(mysqld) 198.51.100.20

数据节点“A”(ndbd) 198.51.100.30

数据节点“B”(ndbd) 198.51.100.40

每个NDB群集主机必须安装正确的可执行程序。

  • 运行SQL节点的主机必须在其上安装MySQL服务器二进制文件(mysqld)。
  • 管理节点需要管理服务器守护进程(ndb_mgmd);
  • 数据节点需要数据节点守护进程(ndbd或ndbmtd)。

没有必要在管理节点主机和数据节点主机上安装MySQL服务器二进制文件。建议您还在管理服务器主机上安装管理客户端(ndb_mgm)。

1.在Linux上安装NDB集群二进制文件(tar.gz文件)

在Linux上安装NDB集群可以使用Oracle的预编译二进制文件(作为.tar.gz压缩文件下载),RPM软件包(也可从Oracle获得)或源代码完成

参考: 在Linux上安装NDB群集二进制版本(用google chrome 打开翻译该页面)

按照上面安装完成后,接下来开始下一步:配置

2.NDB集群的初始配置

  • 每个数据节点或SQL节点都需要一个my.cnf文件,该 文件提供两条信息:一个连接字符串,告诉节点在哪里找到管理节点,另一条是告诉该主机上的MySQL服务器(托管数据节点的机器)以启用该 NDBCLUSTER存储引擎

  • 管理节点需要一个config.ini 文件,告诉它要维护多少副本,为每个数据节点上的数据和索引分配多少内存,在哪里找到数据节点,在每个数据节点上将数据保存到磁盘的位置以及在哪里查找任何SQL节点。

配置数据节点和SQL节点。

my.cnf数据节点所需 的文件非常简单。配置文件应该位于/etc目录中,并且可以使用任何文本编辑器进行编辑。(如果该文件不存在,则创建该文件。)

对于我们示例设置中的每个数据节点和SQL节点, my.cnf应该如下所示:

[mysqld]
# Options for mysqld process:
ndbcluster                      # run NDB storage engine

[mysql_cluster]
# Options for NDB Cluster processes:
ndb-connectstring=198.51.100.10  # location of management server

输入上述信息后,保存该文件并退出文本编辑器。为托管数据节点“ A ”,数据节点“ B ”和SQL节点的计算机执行此操作

配置管理节点。

配置管理节点的第一步是创建可以找到配置文件的目录,然后创建文件本身。


shell> mkdir /var/lib/mysql-cluster
shell> cd /var/lib/mysql-cluster
shell> vi config.ini

 ```
 对于我们的代表设置,该config.ini 文件应该如下所示:

 ```bash

 [ndbd default]
# Options affecting ndbd processes on all data nodes:
NoOfReplicas=2    # Number of replicas
DataMemory=80M    # How much memory to allocate for data storage
IndexMemory=18M   # How much memory to allocate for index storage
                  # For DataMemory and IndexMemory, we have used the
                  # default values. Since the "world" database takes up
                  # only about 500KB, this should be more than enough for
                  # this example NDB Cluster setup.
ServerPort=2202   # This the default value; however, you can use any
                  # port that is free for all the hosts in the cluster
                  # Note1: It is recommended that you do not specify the port
                  # number at all and simply allow the default value to be used
                  # instead
                  # Note2: The port was formerly specified using the PortNumber 
                  # TCP parameter; this parameter is no longer available in NDB
                  # Cluster 7.5.

[ndb_mgmd]
# Management process options:
HostName=198.51.100.10          # Hostname or IP address of MGM node
DataDir=/var/lib/mysql-cluster  # Directory for MGM node log files

[ndbd]
# Options for data node "A":
                                # (one [ndbd] section per data node)
HostName=198.51.100.30          # Hostname or IP address
NodeId=2                        # Node ID for this data node
DataDir=/usr/local/mysql/data   # Directory for this data node's data files

[ndbd]
# Options for data node "B":
HostName=198.51.100.40          # Hostname or IP address
NodeId=3                        # Node ID for this data node
DataDir=/usr/local/mysql/data   # Directory for this data node's data files

[mysqld]
# SQL node options:
HostName=198.51.100.20          # Hostname or IP address
                                # (additional mysqld connections can be
                                # specified for this node for various
                                # purposes such as running ndb_restore)

在创建了所有配置文件并指定了这些最小选项后,即可开始启动群集并验证所有进程正在运行。

3 NDB集群的初始启动

配置完成后启动集群并不是非常困难。每个群集节点进程必须分别启动,并在其所在的主机上启动。应首先启动管理节点,然后启动数据节点,最后启动任何SQL节点

在管理主机上

从系统shell发出以下命令以启动管理节点进程:

shell> ndb_mgmd -f /var/lib/mysql-cluster/config.ini

首次启动时, 必须使用 -f 选项告知ndb_mgmd在哪里查找其配置文件 。 -f–config-file

在每个数据节点主机上

运行以下命令启动 ndbd进程:

shell> ndbd

在每个sql节点上启动mysql

shell> service mysql start

或者

shell> mysqld_safe &

注意此步骤不需要单独安装 mysql,如果你启动不了,查看是否之前在第一步安装时已经把mysql.server 加到服务里面

最后

如果一切顺利,并且集群已正确设置,则集群现在应该可以运行。您可以通过调用ndb_mgm管理节点客户端来进行测试。输出结果应该如下所示,尽管您可能会在输出中看到一些细微差异,具体取决于您使用的MySQL的确切版本:

shell> ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> SHOW
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=2    @198.51.100.30  (Version: 5.7.21-ndb-7.5.10, Nodegroup: 0, *)
id=3    @198.51.100.40  (Version: 5.7.21-ndb-7.5.10, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @198.51.100.10  (Version: 5.7.21-ndb-7.5.10)

[mysqld(API)]   1 node(s)
id=4    @198.51.100.20  (Version: 5.7.21-ndb-7.5.10)

此处引用SQL节点 [mysqld(API)],它反映了mysqld进程充当NDB集群API节点的事实 。

您现在应该准备好使用NDB群集中的数据库,表格和数据.

参考带表格和数据的NDB群集示例

参考:安全关闭并重新启动NDB群集

参考:升级和降级NDB集群

你可能感兴趣的:(mysql)