博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql-cluster 环境安装&配置
阅读量:6180 次
发布时间:2019-06-21

本文共 6296 字,大约阅读时间需要 20 分钟。

一、mysql-cluster 的介绍:

  1、说心里话mysql-cluster这货性能上是不行的,之前一个同事测试了来的结果是8个主机组成的mysql-cluster性能

  上搞不过一个单机的mysql(innodb引擎);这样的性能表现就尴尬了。

 

  2、在功能上这货也不是一完整的,它有各种各样的不支持。

 

  3、从官方表现上看不管是mysql-5.6 还是mysql-5.7 都有与之对应的mysql-cluster版本,但是在mysql-8这一代

  变天了不再提供与之对应的mysql-cluster版本了,这个说明什么?说明mysql-cluster这货要GG啦。

 

  4、好吧! mysql-cluster 是什么,是一个不成熟的解决方案! 它的设计思路是把单机mysql中的SQL层 和 引擎层

  分离出来,使它们可以单独运行。想想如果多个用于保存数据的引擎能同时在多台主机上运行,这样数据就有冗余

  了,同理SQL层的处理也是一样的,mysql-cluster就是通过冗余来提高整个环境的可用性的。还有为了方便管理

  mysql-cluster的这若干的主机,mysql还专门开发了一个管理端程序。

 

  5、现在专业一点 mysql-cluster中把主机按它运行的程序不同,逻辑上分成了三类:

    1、sql node :运行mysqld 的主机,逻辑上负责保存元数据,处理连接请求。

    2、data node :真正保存数据的主机

    3、manger node : 用于管理以上两类(sql node ,data node)结点的结点。

 

  6、再送你一张官方的mysql-clustr架构图

    

 

二、安装环境的规划:

主机IP地址                  角色10.186.19.19            manager node10.186.19.18            data node10.186.19.17            data node10.186.19.16            sql node

 

 三、下载安装介质:

  为了说明mysql-cluster整体架构、也就是说哪个角色要安装什么就可以了、所以在这里选择把安装包下载到10.186.19.16这台主机上

  对于其它角色就采用scp的方式把相关的程序复制过去,这样做的好处是对于各个角色要安装什么包就变得非常明显了。

[root@actionsky17 ~]# cd /tmp/[root@actionsky17 tmp]# wget https://dev.mysql.com/get/Downloads/MySQL-Cluster-7.5/mysql-cluster-gpl-7.5.7-linux-glibc2.12-x86_64.tar.gz

 

四、安装sql node :

# 解压安装包并创建相关目录cd /tmp/tar -xvf mysql-cluster-gpl-7.5.7-linux-glibc2.12-x86_64.tar.gz -C /usr/local/cd /usr/local/ln -s mysql-cluster-gpl-7.5.7-linux-glibc2.12-x86_64 mysqlmkdir -p /usr/local/mysql/data#增加mysql用户useradd mysql#初始化sql node./bin/mysqld --initialize-insecure --user=mysql --datadir=/usr/local/mysql/data/#初始化完成后数据目录有如下内容[root@actionsky16 mysql]# ll /usr/local/mysql/data/total 110636-rw-r-----. 1 mysql mysql       56 Oct 11 02:52 auto.cnf-rw-r-----. 1 mysql mysql      422 Oct 11 02:52 ib_buffer_pool-rw-r-----. 1 mysql mysql 12582912 Oct 11 02:52 ibdata1-rw-r-----. 1 mysql mysql 50331648 Oct 11 02:52 ib_logfile0-rw-r-----. 1 mysql mysql 50331648 Oct 11 02:51 ib_logfile1drwxr-x---. 2 mysql mysql     4096 Oct 11 02:52 mysqldrwxr-x---. 2 mysql mysql     4096 Oct 11 02:52 ndbinfodrwxr-x---. 2 mysql mysql     8192 Oct 11 02:52 performance_schemadrwxr-x---. 2 mysql mysql     8192 Oct 11 02:52 sys

 

五、安装data node:

  由于data node 只包涵引擎层相关的程序,所以安装也就是把引擎层相关的程序由10.186.19.16 scp 到对应的主机,并以这些程序有

  可执行权限就行了

  在10.186.19.16(sql node)上执行

[root@actionsky16 mysql]# scp /usr/local/mysql/bin/ndbd 10.186.19.17:/usr/local/bin/ [root@actionsky16 mysql]# scp /usr/local/mysql/bin/ndbmtd 10.186.19.17:/usr/local/bin/[root@actionsky16 mysql]# scp /usr/local/mysql/bin/ndbd 10.186.19.18:/usr/local/bin/ [root@actionsky16 mysql]# scp /usr/local/mysql/bin/ndbmtd 10.186.19.18:/usr/local/bin/

  

 六、安装manger node:

[root@actionsky16 mysql]# scp /usr/local/mysql/bin/ndb_mgm* 10.186.19.19:/usr/local/bin/ndb_mgm                                                                 100% 7926KB   7.7MB/s   00:01    ndb_mgmd                                                                100%   17MB  17.2MB/s   00:00

 

 七:配置sql node 与 data node:

  首先不管是sql node 还是 data node 他们和普通的单机一样都是读的/etc/my.cnf 这个配置文件中的配置项。

  然而与普通单机不同的是它们的配置文件中额外说明两个问题

  1、说明结点以mysql-cluster的方式工作 ndbcluster

  2、说明结点对应的manger是谁 ndb-connectstring=manger主机的地址

  以下是sql node 和 data node的配置文件样例:

[mysqld]basedir=/usr/local/mysql/           #mysql的安装路径        datadir=/usr/local/mysql/data       #sql node 的相关数据保存的位置ndbcluster                          #以mysql-cluster的方式运行ndb-connectstring=10.186.19.19      #mysql-cluster  manager的运行

 

八:配置manger node:

  官方文档中把manger node 的配置文件保存在/var/lib/mysql-cluster/ 这个目录下了,配置文件名叫config.ini 

  我个人喜欢根据官方文档中的位置保存文件,这样我配置出来的环境就统一了,方便以后的运维。

  1、创建保存配置文件的目录&创建配置文件:

mkdir -p  /var/lib/mysql-clustercd /var/lib/mysql-cluster/touch config.ini

  2、配置文件中的内容如下:

[ndbd default]NoOfReplicas=2DataMemory=80MIndexMemory=18MServerPort=2202[ndb_mgmd]HostName=10.186.19.19DataDir=/var/lib/mysql-cluster[ndbd]HostName=10.186.19.18NodeId=2DataDir=/usr/local/mysql/data[ndbd]HostName=10.186.19.17NodeId=3DataDir=/usr/local/mysql/data[mysqld]HostName=10.186.19.16

 

九:启动mysql-cluster:

  mysql-cluster的启动过程是有一个固定的步骤的

  第一步:启动manger node

[root@10-186-19-19 mysql-cluster]# ndb_mgmd -f /var/lib/mysql-cluster/config.ini --configdir=/var/lib/mysql-cluster/

  第二步:启动data node

  分别在两个data node 结点上执行

[root@actionsky18 local]# ndbd  --initial --ndb-connectstring=10.186.19.192017-10-11 04:12:56 [ndbd] INFO     -- Angel connected to '10.186.19.19:1186'2017-10-11 04:12:56 [ndbd] INFO     -- Angel allocated nodeid: 2

  第三步:启动sql node

cd /usr/local/mysql/./bin/mysqld_safe &

 

 十:检查mysql-cluster的运行情况:

  在manger node上执行

[root@10-186-19-19 mysql-cluster]# ndb_mgm-- NDB Cluster -- Management Client --ndb_mgm> showConnected to Management Server at: localhost:1186Cluster Configuration---------------------[ndbd(NDB)]     2 node(s)id=2    @10.186.19.18  (mysql-5.7.19 ndb-7.5.7, Nodegroup: 0, *)id=3    @10.186.19.17  (mysql-5.7.19 ndb-7.5.7, Nodegroup: 0)[ndb_mgmd(MGM)] 1 node(s)id=1    @10.186.19.19  (mysql-5.7.19 ndb-7.5.7)[mysqld(API)]   1 node(s)id=4    @10.186.19.16  (mysql-5.7.19 ndb-7.5.7)

 

十一、mysql-cluster安装&配置的一些注意项:

  1、--initial 会去删除ndb文件系统中的数据,并重新初始化一下,这样之前的数据就全没了。如果你不小心执行了这个

  那你可以准备好跑路了!

  2、目前的环境下有在/etc/my.cnf 中指定ndb-connectstring的值,但是ndbd每次都没有去读,如果我强制--defautls-file

  的方式要它去读/etc/my.cnf ndbd 还会起不来。这下就尴尬了。

  

十二、验证一下环境的可用性:

  由于在初始化sql node 的时间root并没有测试密码,测试环境下我又是以root身份登录的linux,所以在环境变量正确

  的情况下一句mysql命令就能直接进了

mysql> create table t(id int ,x int) engine=ndbcluster;Query OK, 0 rows affected (0.15 sec)mysql> insert into t(id,x) values(110,119);Query OK, 1 row affected (0.01 sec)mysql> select * from t;+------+------+| id   | x    |+------+------+|  110 |  119 |+------+------+1 row in set (0.00 sec)mysql> show create table t;+-------+-----------------------------------------------------------------------------------------------------------------------+| Table | Create Table                                                                                                          |+-------+-----------------------------------------------------------------------------------------------------------------------+| t     | CREATE TABLE `t` (  `id` int(11) DEFAULT NULL,  `x` int(11) DEFAULT NULL) ENGINE=ndbcluster DEFAULT CHARSET=latin1 |+-------+-----------------------------------------------------------------------------------------------------------------------+1 row in set (0.00 sec)

 

 

 

----

 

转载地址:http://ftbda.baihongyu.com/

你可能感兴趣的文章
支持metro style app 的框架已经出来了
查看>>
windows 10 自适应布局
查看>>
mybatis insertUseGeneratedKeys
查看>>
CentOS 6.5 安装和使用Gitlab
查看>>
互信息
查看>>
C#网络编程(基本概念和操作) - Part.1
查看>>
算法6-4:哈希表现状
查看>>
找准目标,捕捉小行星行动正式開始
查看>>
第二章 BIO与NIO
查看>>
云主机如何使用?
查看>>
[WCF]设置拦截器捕捉到request和reply消息
查看>>
windows下net命令失败
查看>>
【原创】Kafka 0.11消息设计
查看>>
第一课——进阶高手的大门
查看>>
利用注册表写开机启动程序(转载)
查看>>
CSDN-markdown编辑器之从线上导入Markdown文件
查看>>
Python- requests详解
查看>>
关于Unity中粒子效果的使用
查看>>
View学习(四)-View的绘制(draw)过程
查看>>
Android 开发之 ---- 底层驱动开发(一)
查看>>