设为首页 收藏本站
查看: 861|回复: 0

[经验分享] mysql cluster集群搭建

[复制链接]

尚未签到

发表于 2018-10-7 07:43:42 | 显示全部楼层 |阅读模式
安装要求

  •   安装环境:CentOS-6.4
  •   安装方式:源码编译安装
  •   软件名称:mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz
  •   软件安装位置:/usr/local/mysql
  •   数据存放位置:/var/mysql/data
  •   日志存放位置:/var/mysql/logs
集群设计
  首先设计集群的安装分配方式,我共需要5台服务器,服务器分配如下:

  •   管理节点:    172.16.172.133
  •   sql节点1:    172.16.172.132
  •   sql节点2:    172.16.172.134
  •   数据节点1:   172.16.172.130
  •   数据节点2:   172.16.172.131
  设备的连接方式如
  注意:目前这种设计存在的问题是管理节点是单点的。
管理节点
管理节点安装
  安装管理节点(172.16.172.133)
[root@localhost /]# groupadd mysql  
[root@localhost /]#  useradd mysql -g mysql
  
[root@localhost /]# cd /usr/local
  
[root@localhost local]# tar -zxv -f mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz
  
[root@localhost local]# mv mysql-cluster-gpl-7.2.6-linux2.6-x86_64 mysql
  
[root@localhost local]# chown -R mysql:mysql mysql
  
[root@localhost local]# cd mysql
  
[root@localhost mysql]# scripts/mysql_install_db –user=mysql
管理节点配置
[root@localhost ~]#  mkdir /var/lib/mysql-cluster  
[root@localhost ~]# cd /var/lib/mysql-cluster
  
[root@localhost mysql-cluster]# vi + /var/lib/mysql-cluster/config.ini
  在config.ini 中添加以下内容:
[NDBD DEFAULT]  
NoOfReplicas=1
  
[TCP DEFAULT]
  
portnumber=3306
  
[NDB_MGMD]
  
#设置管理节点服务器
  
HostName=172.16.172.133
  
DataDir=/var/mysql/data
  
[NDBD]
  
#设置存储节点服务器(NDB节点)
  
HostName=172.16.172.130
  
DataDir=/var/mysql/data
  
[NDBD]
  
#第二个NDB节点
  
HostName=172.16.172.131
  
DataDir=/var/mysql/data
  
[MYSQLD]
  
#设置SQL节点服务器
  
HostName=172.16.172.132
  
[MYSQLD]
  
#第二个SQL节点
  
HostName=172.16.172.134
管理节点启动
[root@localhost ~]# /usr/local/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini  
[root@localhost ~]# mkdir /var/mysql/logs
  
[root@localhost ~]# netstat -lntpu
  看到tcp 0 0 0.0.0.0:1186开放说明启动正常
  开启管理节点服务器的1186端口
管理节点检验
  执行以下操作:
[root@localhost /]# 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 (not connected, accepting connect from 172.16.172.130)
  
id=3 (not connected, accepting connect from 172.16.172.131)
  
[ndb_mgmd(MGM)] 1 node(s)
  
id=1    @192.168.15.231  (mysql-5.5.22 ndb-7.2.6)
  
[mysqld(API)]   2 node(s)
  
id=4 (not connected, accepting connect from 172.16.172.132)
  
id=5 (not connected, accepting connect from 172.16.172.134)
管理节点关闭
[root@localhost /]# /usr/local/mysql/bin/ndb_mgm -e shutdown  
#成功后终端打印出以下信息
  
Connected to Management Server at: 172.16.172.133:1186
  
3 NDB Cluster node(s) have shutdown.
  
Disconnecting to allow management server to shutdown.
数据节点
数据节点安装
  数据节点1: 172.16.172.130
  数据节点2: 172.16.172.131
[root@localhost /]# groupadd mysql  
[root@localhost /]# useradd mysql -g mysql
  
[root@localhost /]# cd /usr/local
  
[root@localhost local]# tar -zxv -f mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz
  
[root@localhost local]# mv mysql-cluster-gpl-7.2.6-linux2.6-x86_64 mysql
  
[root@localhost local]# chown -R mysql:mysql mysql
  
[root@localhost local]# cd mysql
  
[root@localhost mysql]# scripts/mysql_install_db --user=mysql
  
[root@localhost mysql]# cp support-files/my-medium.cnf /etc/my.cnf
  
[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld
数据节点配置
  对数据节点进行配置,执行以下操作:
[root@localhost mysql]# mkdir /var/mysql/data  
[root@localhost mysql]# mkdir /var/mysql/logs
  
[root@localhost mysql]# vi /etc/my.cnf
  向文件追加以下内容:
[MYSQLD]  
ndbcluster
  
ndb-connectstring=172.16.172.133
  
[MYSQL_CLUSTER]
  
ndb-connectstring=172.16.172.133
  
[NDB_MGM]
  
connect-string=172.16.172.133
  数据节点启动
  启动此处时,管理节点服务器防火墙必须开启1186,3306端口。
  注意:只是在第一次启动或在备份/恢复或配置变化后重启ndbd时,才加–initial参数!
  第一次启动如下:
[root@localhost mysql]# /usr/local/mysql/bin/ndbd --initial  
2013-01-30 13:43:53 [ndbd] INFO     -- Angel connected to '172.16.172.133
  
:1186'
  
2013-01-30 13:43:53 [ndbd] INFO     -- Angel allocated nodeid: 2
  正常启动方式:
[root@localhost mysql]# /usr/local/mysql/bin/ndbd数据节点关闭
[root@localhost /]# /etc/rc.d/init.d/mysqld stop  或者
[root@localhost mysql]# /etc/init.d/mysql stop  
Shutting down MySQL.. SUCCESS!
  

  
/usr/local/mysql/bin/mysqladmin -uroot shutdown
SQL节点安装
SQL节点安装
  SQL节点和存储节点(NDB节点)安装相同,都执行以下操作;
  sql节点1: 172.16.172.132
  sql节点2: 172.16.172.134
SQL节点配置
[root@localhost /]# groupadd mysql  
[root@localhost /]# useradd mysql -g mysql
  
[root@localhost /]# cd /usr/local
  
[root@localhost local]# tar -zxv -f mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz
  
[root@localhost local]# mv mysql-cluster-gpl-7.2.6-linux2.6-x86_64 mysql
  
[root@localhost local]# chown -R mysql:mysql mysql
  
[root@localhost local]# cd mysql
  
[root@localhost mysql]# scripts/mysql_install_db --user=mysql
  
[root@localhost mysql]# cp support-files/my-medium.cnf /etc/my.cnf
  
[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld
  执行以下操作:
[root@localhost mysql]# mkdir /var/mysql/data     //创建存储数据的文件夹  
[root@localhost mysql]# mkdir /var/mysql/logs     //创建存储日志的文件夹
  
[root@localhost mysql]# vi /usr/local/mysql/my.cnf  //修改配置文件
  追加以下内容:
[MYSQLD]  
ndbcluster
  
ndb-connectstring=172.16.172.133
  
[MYSQL_CLUSTER]
  
ndb-connectstring=172.16.172.133
  
[NDB_MGM]
  
connect-string=172.16.172.133
  SQL节点启动
  执行以下操作:
[root@localhost mysql]# service mysqld start  
Starting MySQL.. SUCCESS!
SQL节点关闭
  最直接的方式:
[root@localhost mysql]# /usr/local/mysql/bin/mysqladmin -uroot shutdown  

  
[root@localhost /]# /etc/rc.d/init.d/mysqld stop
  或者
[root@localhost mysql]# /etc/init.d/mysql stop  
Shutting down MySQL.. SUCCESS!
功能测试
  在管理节点(172.16.172.133)上查看服务状态
[root@localhost ~]# /usr/local/mysql/bin/ndb_mgm  
-- NDB Cluster -- Management Client --
  
ndb_mgm> show
  
Cluster Configuration
  
---------------------
  
[ndbd(NDB)]     2 node(s)
  
id=2    @172.16.172.130  (mysql-5.5.22 ndb-7.2.6, Nodegroup: 0, Master)
  
id=3    @172.16.172.131  (mysql-5.5.22 ndb-7.2.6, Nodegroup: 1)
  
   [ndb_mgmd(MGM)] 1 node(s)
  
id=1    @172.16.172.133  (mysql-5.5.22 ndb-7.2.6)
  
   [mysqld(API)]   2 node(s)
  
id=4    @172.16.172.132  (mysql-5.5.22 ndb-7.2.6)
  
id=5    @172.16.172.134  (mysql-5.5.22 ndb-7.2.6)
  可以看到这里的数据节点、管理节点、sql节点都是正常的。
  注意:

  •   在建表的时候一定要用ENGINE=NDB或ENGINE=NDBCLUSTER指定使用NDB集群存储引擎,或用ALTER TABLE选项更改表的存储引擎。
  •   NDB表必须有一个主键,因此创建表的时候必须定义主键,否则NDB存储引擎将自动生成隐含的主键。
  •   Sql节点的用户权限表仍然采用MYISAM存储引擎保存的,所以在一个Sql节点创建的MySql用户只能访问这个节点,如果要用同样的用户访 问别的Sql节点,需要在对应的Sql节点追加用户。虽然在MySql Cluster7.2版本开始提供了”用户权限共享”。
数据同步性测试
  在一个数据节点上进行相关数据库的创建,然后到另外一个数据节点上看看数据是否同步。
第1步:
  SQL节点1(172.16.172.132)上增加数据:
SQL节点1(172.16.172.132)上增加数据:  
[root@localhost mysql]#  /etc/rc.d/init.d/mysqld status                //检验mysql是否运行
  
[root@localhost mysql]# /etc/rc.d/init.d/mysqld start                   //启动mysql
  
[root@localhost mysql]# /usr/local/mysql/bin/mysql -u root -p
  
Enter password:
  
mysql> show databases;
  
mysql> create database testdb2;
  
mysql> use testdb2;
  
mysql> CREATE TABLE td_test2 (i INT) ENGINE=NDB;
  
//这里必须指定数据库表的引擎为NDBCLUSTER,与配置文件中的名称相同
  
mysql> INSERT INTO td_test2() VALUES (1);
  
mysql> INSERT INTO td_test2() VALUES (152);
  
mysql> SELECT * FROM td_test2;
第2步:
  进入到SQL节点2(172.16.172.134)上查看数据
mysql> use testdb2;  
Database changed
  
mysql> SELECT * FROM td_test2;
  
+------+
  
| i    |
  
+------+
  
|  126 |
  
|    1 |
  
+------+
  
2 rows in set (0.01 sec)
  查看表的引擎是不是NDB:
  mysql> show create table td_test2;
第3步:
  反向测试,SQL节点2(172.16.172.134)上增加数据:
mysql> create database bb;  
mysql> use bb;
  
mysql> CREATE TABLE td_test3 (i INT) ENGINE=NDB;
  
mysql> INSERT INTO td_test3 () VALUES (98);
  
mysql> SELECT * FROM td_test3;
  SQL节点1(172.16.172.132)上查看数据:
mysql>  use bb;  
Database changed
  
mysql>  SELECT * FROM td_test3;
  
+------+
  
| i    |
  
+------+
  
|   98 |
  
+------+
  
1 row in set (0.00 sec)
关闭集群
  先关闭管理节点,然后关闭SQL节点和数据节点。
  集群启动操作顺序
  要再次启动集群,按照以下顺序执行:
  管理节点 ->数据节点 –> SQL节点
  注意:此次启动数据节点时不要加”–initial”参数。
  云服务器、云数据库方案、网络安全防护优选
  MySQL双主 + Keepalived主备自动切换方案一
  MySQL双主 + Keepalived主备自动切换方案二
  MySQL主从 + Keepalived主从自动切换方案
  MySQL双主 + 多从高可用方案---MMM
  MySQL + Pecemaker(Heartbeat) + DRBD主高可用
  MySQL + RHCS 高可用方案
  MySQL + Cluser 集群架构
  Percona Xtradb Cluster 集群高可用性解决方案
  管理节点
  172.16.14.145 mgm1
  172.16.14.150  mgm2
  172.16.14.146 ndb1
  172.16.14.147 ndb2
  172.16.14.148  sql1
  172.16.14.149 sql2
  集群配置概述:
  安装版本:mysql cluster 7.3.5
  操作系统 :centos6.5(X64)
  软件名称
  管理节点IP
  数据节点
  SQL节点IP:
  数据节点
  SQL节点IP:
  配置ssh等效不要密码登录
  配置hosts解析
  配置本地yum源 6.5
  安装依赖包:yum install -y glibc perl libaio-devel
  x32位系统要安装兼容库组:yum -y groupinstall "Compatibility libraries"
  1. mysql旧版本清除:
  首先使用如下命令来清理之前操作系统自带的mysql安装:
  yum -y remove mysql
  然后使用如下命令:
  rpm -qa | grep mysql*
  对于找到的2个剩余mysql包,请按照如下的命令格式予以删除:
  rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64
  每个节点都要那么做
  关闭 /etc/init.d/iptables stop
  /etc/init.d/ip6tables stop
  chkconfig iptables off
  chkconfig ip6tables off
  vim /etc/selinux/config
  SELINUX=disabled
  # SELINUXTYPE= can take one of these two values:
  #     targeted - Targeted processes are protected,
  #     mls - Multi Level Security protection.
  #SELINUXTYPE=targeted  注释掉这行
  软件安装位置:/opt/local/mysql
  数据存放位置:/opt/mysql/data SQL节点存储数据的路径
  日志存放位置:/opt/mysql/logs
  /opt/local/cluster 管理集群时收集的集群信息的存放路径
  机器描述:
  192.168.100.1 : 管理节点
  192.168.100.2 : SQL节点1
  192.168.100.3 : SQL节点2
  192.168.100.4 : 数据节点1
  192.168.100.5 : 数据节点2
  软件需求:Linux下64位MySQL:mysql-cluster-gpl-7.2.8-linux2.6-x86_64.tar.gz
  1、安装管理节点:192.168.100.1
  (1)把mysql-cluster-gpl-7.2.8-linux2.6-x86_64.tar.gz 解压到 /usr/local/myql 下
  (2)在mysql目录下创建文件夹:mkdir  /usr/local/myql/mysql-cluster
  (3)在mysql目录下创建文件夹:mkdir  /usr/local/myql/cluster-conf
  (4)编辑config.ini文件:vi /usr/local/mysql/cluster-conf/config.ini 内容如下:
DSC0000.png

  [ndbd default] NoOfReplicas=2DataMemory=200MIndexMemory=100M
  [ndb_mgmd]
  id=1
  hostname=192.168.100.1
  DataDir=/usr/local/mysql/mysql-cluster
  [ndbd]id=2HostName=192.168.100.4DataDir=/usr/local/mysql/ndbdata
  [ndbd]
  id=5
  HostName=192.168.100.5
  DataDir=/usr/local/mysql/ndbdata
  [mysqld]id=6HostName=192.168.100.2
  [mysqld]
  id=7
  HostName=192.168.100.3

  2、安装SQL节点  192.168.100.4 & 192.168.100.5
  (1)把mysql-cluster-gpl-7.2.8-linux2.6-x86_64.tar.gz 解压到 /usr/local/myql 下
  (2)添加mysql用户
  groupadd mysql
  useradd -g mysql mysql
  (3)添加权限
  chown -R mysql:mysql /usr/local/mysql
  (4)拷贝配置文件
  cp /usr/local/mysql/support-files/my-large.cnf   /etc/my.cnf
  (5)初始化数据库
  cd /usr/local/mysql
  scripts/mysql_install_db --user=mysql
  (6)拷贝守护进程所需文件
  cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
  (7)配置守护进程
  chkconfig –add mysqld
  chkconfig –level 35 mysqld on
  (8)更改配置文件 vi /etc/my.cnf 内容如下:
  [mysqld]
  port = 3306
  socket = /tmp/mysql.sock
  ndbcluster
  ndb-connectstring=192.168.100.1  #管理节点的IP
  3、安装数据节点
  (1)把mysql-cluster-gpl-7.2.8-linux2.6-x86_64.tar.gz 解压到 /usr/local/mysql 下
  (2)在mysql目录下创建文件:mkdir  /usr/local/mysql/ndbdata
  (3)编辑my.cnf: vi /etc/my.cnf 在文件末尾添加如下内容:
  [mysql_cluster]
  ndb-connectstring=192.168.100.1  #管理节点IP
  4、配置环境变量:
  #config mysql
  export MYSQL_HOME=/usr/local/mysql
  export PATH=$MYSQL_HOME/bin:$PATH
  5、启动集群
  启动顺序:管理服务器->存储节点->SQL节点
  (1)启动管理节点
  rm mysql/mysql-cluster/ndb_1_config.bin.1  #如果config.ini有改动则要加上
  ndb_mgmd -f /usr/local/mysql/cluster-conf/config.ini
  (2)启动存储节点
  ndbd --initial #(第一次启动必须添加选项)
  ndbd    #不是第一次启动需要执行的命令
  (3)启动SQL节点
  /etc/rc.d/init.d/mysqld start 或 service mysqld start

  •   云服务器、云数据库方案、网络安全防护优选
  6、关闭集群
  (1)关闭SQL节点
  /etc/rc.d/init.d/mysqld stop 或service mysqld stop
  (2)关闭管理节点
  ndb_mgm〉 shutdown
  7、验证配置的正确性
  在管理节点执行:ndb_mgm -> show
  8、创建表
  创建表需要以 ndbcluster 作为存储引擎
  CREATE TABLE `test`.`test` (
  `id`  VARCHAR(45) NOT NULL,
  `name`        VARCHAR(9),
  PRIMARY KEY (`id`)
  )  ENGINE = ndbcluster;
  8. 关闭集群服务
  关闭sql节点等同于停止mysql服务,此时外界数据不将再进来。然后关闭管理节点
~/mysql/bin/ndb_mgm -e shutdown  
rm ~/mysql/mysql-cluster/ndb_1_config.bin.1 #不是必须的,如果config.ini有改动则要加上
  这样操作后,管理节点和数据节点都将停止服务
  Notes:
1:如果发现关闭一台机器的ndbd进程,另一台机器的ndbd的进程也关闭,则需要修改参数NoOfReplicas。  
2:./ndbd --initial 不能同时在所有数据节点机器上执行,如执行,会删除所有数据
  
3:可以像操作非簇类型的数据库那样,操作mysqld节点
  
4:每次修改config.ini文件,重启ndb_mgmd时,需要删除mysql-cluster文件下的ndb_1_config.bin.1文件,
  
因为他默认调用此文件
  
5:NDB 簇不支持自动发现数据库的功能,这点很重要,一旦在一个数据节点上创建了世界(world)数据库和它的表,
  
在簇中的每个SQL节点上还需要发出命令 CREATE DATABASE world,后跟FLUSH TABLES。这样,节点就能
  
识别数据库并读取其表定义。(在本版本MySQL Cluster 7.1.5下数据库也会自动同步的)
  
6:如果在相关节点服务器启动时,注意查看~/mysql/mysql-cluster目录内的相关日志文件以获取错误信息.
  
7:在管理节点的配置文件里各[mysqld],[ndbd]和[ndb_mgmd]配置的选项值顺序应该如下:
  
[mysqld]
  
Id=4
  
HostName=192.168.208.3
  
Id在顶端紧跟其后的是HostName,如果顺序错了,当SQL或数据节点连接管理节点时,管理节点无法正确的定位
  
到其对应的节点配置上.
  
因为无法定位到对应的节点配置,当没有剩余的[空节点]时,客户端节点启动时(./mysqld or ./ndbd)
  
还会报:
  
Configuration error: Error : Could not alloc node id at 192.168.0.231 port 1186: No free
  
node id found for mysqld
  
(API).Failed to initialize consumers
  
8:[空节点]是没有指定HostName选项的节点配置均为空节点,空节点可以用来动态配置一些动态IP的节点,
  
一般管理节点的 配置文件要预留3个以上的空节点,因为备份时需要连接一个节点,如下:
  
[mysqld]
  
Id=6
---------------体系结构
  MySQL Cluster 由3个不同功能的服务构成,每个服务由一个专用的守护进程提供,一项 服务也叫做一个节点,下面来介绍每个节点的功能。
  The management (MGM) node
  管理节点,用来实现整个集群的管理,理论上一般只启动一个,而且宕机也不影响 cluster 的服务,这个进程只在cluster 启动以及节点加入集群时起作用, 所以这个节点不是很需要冗余,理论上通过一台服务器提供服务就可以了。
  通过 ndb_mgmd 命令启动,使用 config.ini 配置文件
  The storage or database (DB) node:
  数据库节点,用来存储数据,可以和管理节点(MGM) , 用户端节点(API) 可以处在 不同的机器上,也可以在同一个机器上面,集群中至少要有一个DB节点,2个以上 时就能实现集群的高可用保证,DB节点增加时,集群的处理速度会变慢。
  通过 ndbd 命令启动,第一次创建好cluster DB 节点时,需要使用 –init参数初始化。
  例如: bin/ndbd –ndb-connectstring=ndb_mgmd.mysqlcluster.net –initial
  The client (API) node:
  客户端节点,通过他实现 cluster DB 的访问,这个节点也就是普通的 mysqld 进程, 需要在配置文件中配置ndbcluster 指令打开 NDB Cluster storage engine 存储引擎,增加 API 节点会提高整个集群的并发访问速度和整体的吞吐量,该节点 可以部署在Web应用服务器上,也可以部署在专用的服务器上,也开以和DB部署在 同一台服务器上。
  通过 mysqld_safe 命令启动,
  这3类节点可以分布在不同的主机上,比如 DB 可以是多台专用的服务器,也可以 每个DB都有一个API,当然也可以把API分布在Web前端的服务器上去,通常来说, API越多cluster的性能会越好。
Mysql集群探索与实践
  1. 准备好3台机器,从官网下载最新的mysql集群版本,此处用到mysql-cluster-gpl-7.1.5.tar.gz源码包, 配置并安装,记得加上
  –with-plugins=innobase,ndbcluster (innobase可选)
  3台机器分别是192.168.207.153,192.168.208.3,192.168.208.9,具体分配如下
  管理节点(ndb_mgmd):192.168.207.153
  数据节点(ndbd): 192.168.208.3
  数据节点(ndbd): 192.168.208.9
  SQL节点(mysqld): 192.168.208.3
  SQL节点(mysqld): 192.168.208.9
  2. 在mysql目录下新建mysql-cluster文件夹,切换到mysql-cluster,新建config.ini
[NDBD DEFAULT]  
NoOfReplicas=2       #备份,副本,这样的话2台数据节点的数据就会同步
  
DataMemory=200M
  
IndexMemory=100M
  
[TCP DEFAULT]
  
portnumber=2202
  
[NDB_MGMD]   #管理节点
  
id=1
  
hostname=192.168.207.153
  
datadir=/home/taozi/mysql/mysql-cluster
  
[NDBD]    #数据节点
  
id=2
  
hostname=192.168.208.3
  
datadir=/home/taozi/mysql/data
  
[NDBD]   #数据节点
  
id=3
  
hostname=192.168.208.9
  
datadir=/home/taozi/mysql/data
  
[MySQLD]   #sql节点
  
id=4
  
hostname=192.168.208.3
  
[MySQLD]    #sql节点
  
id=5
  
hostname=192.168.208.9
  
[MySQLD]     #sql节点
  
id=6
  3. 在管理节点服务器上启动管理节点服务 (如果不存在ndb_mgmd那么要从libexec下面复制过来)
~/mysql/bin/ndb_mgmd -f ~/mysql/mysql-cluster/config.ini  4. 进入2台数据节点服务器,分别启动数据节点服务
~/mysql/bin/ndbd     (第一次启动使用  ~/mysql/bin/ndbd --initial)  5. 最后分别进入sql节点服务器,修改my.cnf,加入
[MYSQL_CLUSTER]  
ndb-connectstring=192.168.207.153
  
[MYSQLD]
  
ndbcluster
  
ndb-connectstring=192.168.207.153
  启动mysql服务
/home/taozi/mysql/bin/mysqld_safe --ledir=/home/taozi/mysql/bin /  
--log-error=/home/taozi/mysql/data/t.err --datadir=/home/taozi/mysql/data /
  
--socket=/home/taozi/mysql/tmp/mysql.sock --pid-file=/home/taozi/mysql/data/mysqld.pid &
  6. 此时回到管理节点
~/mysql/bin/ndb_mgm -e show

  •   云服务器、云数据库方案、网络安全防护优选
  可以看到显示如下
[taozi@search153 mysql]$ ./show.sh  
Connected to Management Server at: localhost:1186
  
Cluster Configuration
  
---------------------
  
[ndbd(NDB)]     2 node(s)
  
id=2    @192.168.208.3  (mysql-5.1.47 ndb-7.1.5, Nodegroup: 0, Master)
  
id=3    @192.168.208.9  (mysql-5.1.47 ndb-7.1.5, Nodegroup: 0)
  
[ndb_mgmd(MGM)] 1 node(s)
  
id=1    @192.168.207.153  (mysql-5.1.47 ndb-7.1.5)
  
[mysqld(API)]   3 node(s)
  
id=4    @192.168.208.3  (mysql-5.1.47 ndb-7.1.5)
  
id=5    @192.168.208.9  (mysql-5.1.47 ndb-7.1.5)
  
id=6 (not connected, accepting connect from any host)
  7. 进入sql节点,在test数据库创建表
CREATE TABLE `t1` (  
  `id` int(11) NOT NULL AUTO_INCREMENT,
  
  PRIMARY KEY (`id`)
  
) ENGINE=ndbcluster  DEFAULT CHARSET=gbk
  切换到2台数据节点服务器~/mysql/data/ndb_2_fs和~/mysql/data/ndb_3_fs看看,
  或者直接去数据库查,数据已经同步了!
  3.2    管理节点
  主机xp1的C:\mysql-cluster\bin下新建一个文件config.ini,其中内容如下:
  Xml代码   DSC0001.png

  •   [ndbd default]
  •   # Options affecting ndbd processes on all data nodes:
  •   NoOfReplicas=2                      #复本数量,此例采用默认值2
  •   DataDir=C:/mysql-cluster/bin/cluster-data   # 数据节点存储目录
  •   DataMemory=80M    # 数据存储分配的内存,酌情设置
  •   IndexMemory=18M   # 索引存储分配的内存,酌情设置

  •   [ndb_mgmd]
  •   # Management process options:
  •   HostName=192.168.109.130               # 管理节点所在主机IP
  •   DataDir=C:/mysql-cluster/bin/cluster-logs   # 管理节点日志目录

  •   [ndbd]
  •   # Options for data node "A":
  •   # (one [ndbd] section per data node)
  •   HostName=192.168.109.132           # 节点所在主机IP
  •   datadir=C:/mysql-cluster/data   # 数据存储目录

  •   [ndbd]
  •   # Options for data node "B":
  •   HostName=192.168.109.133           # 节点所在主机IP
  •   datadir=C:/mysql-cluster/data

  •   [mysqld]
  •   # SQL node options:
  •   HostName=192.168.109.130           # SQL节点所在主机IP
  这些为集群整体的配置信息,其中[ndbd default]为全局数据节点的默认配置模块。[ndb_mgmd]为管理节点配置模块。[ndbd]为数据节点配置模块。[mysqld]为sql节点配置模块。#后面为注释内容,实际文件可以将这些注释去掉,以防止因为中文的存在导致mysql解析文件失败。启动管理节点直接调用bin目录下的ndb_mgmd.exe即可,但是我们在命令后指定我们上述的配置文件和集群配置的缓存目录,所以命令为
  Java代码  

  •   ndb_mgmd.exe --config-file=C:\\mysql-cluster\\bin\\config.ini --configdir=C:\mysql-cluster\bin\config-cache
  为了方便起见,我们在c:\mysql-cluster\bin目录下新建一个文件ndb_mgmd_start.bat,将上述管理节点启动的命令写入该批处理文件中作为启动命令。
  3.3    数据节点
  我们以数据节点1为例介绍,节点2与此类似。在主机xp2的c:\mysql-cluster下新建文件my.ini。键入如下内容
  Xml代码  

  •   [mysql_cluster]
  •   # Options for data node process:
  •   ndb-connectstring=192.168.109.130  # location of management server
  3.4    SQL节点
  在xp1节点的c:\mysql-cluster目录下新建文件my.ini,键入如下内容
  Xml代码  

  •   [mysqld]
  •   ndbcluster                      # run NDB storage engine
  •   ndb-connectstring=192.168.109.130  # location of management serve
  其中ndbcluster指定了存储引擎为集群环境,ndb-connectstring指定了管理节点的地址。
  到此为止所有节点配置工作就完成了。
  4.      节点管理
  4.1    ndb_mgm介绍
  mysql cluster提供了ndb_mgm.exe来对集群进行管理,在xp1主机的c:\mysql-cluster\bin目录下。我们可以直接在命令行执行该命令进入管理控制台。(注:该程序需要在管理节点启动后才能执行)
  常用的命令包括:
  show: 显示集群中所有节点的状态。如图-04

  图-04
  Node_id status: 查看node_id对应的节点的状态
  shutdown –e: 停止管理节点和所有数据节点。SQL节点不会被停掉。
  笔者就简单用了这几个,其他命令还很多,可以通过HELP命令来查看。
  4.2    节点启停
  Mysql cluster启动有顺序要求,管理节点要最先启动。
  启动管理节点:在命令行中进到c:\mysql-cluster\bin目录下,执行我们之前编辑的批处理文件ndb_mgmd_start.bat.如果启动正常,我们此时可以执行ndb_mgm程序,通过管理控制台查看节点状态了。
  启动数据节点:依次在各个数据节点主机的命令行中进到c:\mysql-cluster\bin目录下,执行ndbd.exe 即可。通过ndb_mgm的管理控制台查看启动状态。
  启动SQL节点:在SQL节点的命令行中进到c:\mysql-cluster\bin目录下,执行mysqld.exe即可。通过ndb_mgm的管理控制台查看启动状态。
  节点停止:在ndb_mgm的管理控制台中执行shutdown –e 则管理节点和数据节点均会停止。另外SQL节点需要手动停止。
  5.      验证
  集群环境搭建完成我们可以对其进行验证。此处偷偷懒,直接引用一个官网的图,如图-05

  图-05
  注意图中建表语句中的ENGINE=NDBCLUSTER。
  如果有兴致还以通过外部程序验证一下。注意外部程序访问URL还是SQL节点。
  好了,这样我们的mysql 集群环境就搭建完成了。

  •   阿里云服务器、云数据库方案、网络安全防护优选



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-614113-1-1.html 上篇帖子: mysql导出数据报错 下篇帖子: MySQL 5.6 基于GTID 进行主从复制
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表