加入收藏 | 设为首页 | 会员中心 | 我要投稿 百客网 - 百科网 (https://www.baikewang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql cluster7.5集群安装指南

发布时间:2022-10-13 10:47:33 所属栏目:MySql教程 来源:
导读:  关于mysqlcluster的安装,网上文章良莠不济,大多数都是错误的过时的.

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

  期间踩了各种坑,最后才在mysqlcluster的官网上熟读了官网文档后
  关于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集群安装指南_mysql集群
 
  MySQL从结构看,由3类节点(计算机或进程)组成,分别是:
 
  管理(MGM)节点:这类节点的作用是管理MySQL Cluster内的其他节点,如提供配置数据、启动并停止节点、运行备份等。由于这类节点负责管理其他节点的配置,应在启动其他节点之前首先启动这类节点。MGM节点是用命令“ndb_mgmd”启动的。
 
  配置文件为: config.ini数据节点:这类节点用于保存 Cluster的数据。数据节点的数目与副本的数目相关,是片段的倍数。例如,对于两个副本,每个副本有两个片段,那么就有4个数据节点。不过没有必要设置多个副本。数据节点是用命令“ndbd”启动的。
 
  配置文件为:my.iniSQL节点:这是用来访问 Cluster数据的节点。对于MySQL Clustermysql集群,客户端节点是使用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集群安装指南_mysql集群_02
 
  表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
  输入上述信息后,保存该文件并退出文本编辑器。为托管数据节点“ A ”,数据节点“ B ”和SQL节点的计算机执行此操作
 
  配置管理节点。
 
  配置管理节点的第一步是创建可以找到配置文件的目录,然后创建文件本身。
 
  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
  首次启动时, 必须使用 ??-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群集中的数据库,表格和数据.
 

(编辑:百客网 - 百科网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!