32.Mysql Cluster
Cluster是一组节点的组合。
节点分为数据节点、SQL节点、管理节点。
节点组合在一起可以为应用提供高可用、高性能、可缩放的Cluster数据管理。
数据节点使用NDB存储引擎存储数据。
Mysql Cluster的特点:数据分布式存储,数据冗余策略,节点可扩展的架构。
Mysql Cluster的目的:满足更大规模的应用,提高系统的可靠性和数据的有效性。
Mysql Cluster的现状:性能和可靠性有待完善。

32.1 Mysql Cluster架构
管理节点:通过config.ini配置文件维护管理其他节点。如:配置数据副本的数量、数据节点的位置、SQL节点的位置、为数据或索引分配的内存等。
SQL节点:应用通过SQL节点来访问数据节点,即提供数据访问服务的节点。
数据节点:存放数据的节点。
Mysql Cluster的访问过程:
前台应用一定的负载均衡算法将对数据库的访问分散到不同的SQL节点上;
然后SQL节点对数据节点进行数据访问并从数据节点返回结果;
最后SQL节点将收到的结果返回给前台应用。
管理节点不参与访问过程,只用来对SQL节点和数据节点进行配置管理。

32.2 Mysql Cluster的配置
管理节点1个:172.22.5.201
SQL节点2个:172.22.5.201/202:3331
数据节点2个:172.22.5.201/202 datadir=/home/mysql/data
32.2.1 Mysql Cluster的版本支持
首先下载mysql cluster安装包mysql-cluster-gpl-7.6.9-linux-glibc2.12-x86_64.tar.gz
安装之前,如果之前安装过mysql,那么需要删除相应的各种mysql文件,删除之前请停止mysql服务。
并且不要忘记删除my.cnf这些配置文件。确保删除干净。不然可能会和后面的安装有冲突。
如果是实验,关闭防火墙,实际中,防火墙打开对应端口,{注意实际中需要使用的端口不只有3306端口,还有同步需要使用的1186端口!!!}。
保证服务器之前能互相访问,能ping通。保证固定的ip地址。保证没有别的程序占用需要使用的端口。如3306等。
这些都确认完毕后再进行安装。需要linux基础的命令熟练,需要熟练安装mysql基本版本等操作,因为后序的一些操作我会简单描述,不做过多的说明了。

32.2.2 管理节点配置步骤
将下载后的包上传至服务器/usr/local下
解压
# tar xvf mysql-cluster-gpl-7.6.9-linux-glibc2.12-x86_64.tar.gz
将需要的文件取出
# cd mysql-cluster-gpl-7.6.9-linux-glibc2.12-x86_64
# cp bin/ndb_mgm* /usr/local/bin --拷贝ndb_mgm和ndb_mgmd到/usr/local/bin
# cd /usr/local/bin
# chmod +x ndb_mgm* -- 给ndb_mgm和ndb_mgmd授执行权限
新建配置文件并且初始化管理节点
# mkdir /var/lib/mysql-cluster
# mkdir /usr/local/mysql
# vi /var/lib/mysql-cluster/config.ini --管理节点的配置文件config.ini
下面是配置文件,根据自己的需求修改,首先给出官网的默认配置文件,然后给出我的配置文件,根据我修改的修改即可,别的均可不动。
见default_config.ini和my_config.ini文件。

使用配置文件初始化管理节点
# /usr/local/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial
出现MySQL Cluster Management Server mysql-5.7.16 ndb-7.5.4
然后就能使用ndbd进去管理了(如果ndbd命令不行,就使用在/usr/local/bin目录下使用ndb_mgm命令)
# ndbd
ndb_mgm>show(使用show命令查看管理情况,当数据节点配置完毕之后,我们再用这个命令查看和管理)
到此为止管理节点配置完毕,接下去配置数据和sql节点

32.2.3 SQL节点和数据节点的配置
新增用户组mysql和用户msyql
# groupadd mysql
# useradd -g mysql -s /bin/false mysql
新建文件夹并赋予权限
# mkdir /var/lib/mysql-cluster
# chown root:mysql /var/lib/mysql-cluster
将下载后的包上传至服务器/usr/local下
解压
# tar xvf mysql-cluster-gpl-7.5.4-linux-glibc2.5-x86_64.tar.gz
创建链接方便访问
# ln -s /usr/local/mysql-cluster-gpl-7.5.4-linux-glibc2.5-x86_64 /usr/local/mysql
初始化数据库(这里要注意,如果你安装的版本和我的不同,数据库初始化的命令使不同的,很多之前的版本会使用:scripts/mysql_install_db --user=mysql来初始化,这个已经被mysql在新的版本中废弃了,所以需要使用下面的命令安装,如果你需要安装别的版本请参考mysql官网的对应版本的安装命令。)
进入刚才创建的目录下
# cd /usr/local/mysql
如果下方这个命令无法使用,那么就进入bin目录下使用./mysqld --initialize进行初始化,总之正常安装mysql如何初始化就如何进行安装就可以了,这里还可以设置安装数据库的data目录等参数这里就不多解释了,网上安装mysql5.7的教程很多。
# mysqld --initialize
如果初始化成功之后,系统会提示一个随机生成的数据库密码,此时需要记住这个密码,之后登录数据库需要使用这个密码!!!
修改权限
# chown -R root .
# chown -R mysql data
# chgrp -R mysql .
# cp support-files/mysql.server /etc/rc.d/init.d/
# chmod +x /etc/rc.d/init.d/mysql.server
# chkconfig --add mysql.server
配置数据节点
# vi /etc/my.cnf
[mysqld]
ndbcluster
ndb-connectstring=192.168.75.129
[mysql_cluster]
ndb-connectstring=192.168.75.129
其中的IP为管理节点的IP
启动集群节点上面的服务启动mysql(成功会有success)# /etc/init.d/mysql.server start
启动mysql成功之后请自己登录进mysql内然后进行密码修改等操作,就和正常安装完成mysql的操作一样。需要注意的是,集群数据库的密码需要相同哦!
启动ndbd
# /etc/init.d/ndbd --initial
如果上述不行使用绝对路径的这个:
# /usr/local/mysql/bin/ndbd --initial
如果出现下述现象就成功了
2017-03-06 14:04:07 [ndbd] INFO -- Angel connected to '192.168.75.129:1186'
2017-03-06 14:04:07 [ndbd] INFO -- Angel allocated nodeid: 2
最后当所有的节点配置完成,回到管理节点,使用上述说过的show查看,如下的类似显示,证明已经连接完成
ndb_mgm> show

32.3 开始使用Cluster
32.3.1 Cluster的启动
32.3.2 Cluster的测试
32.3.3 Cluster的关闭
32.4 维护Cluster
32.4.1 数据备份
32.4.2 数据恢复
32.4.3 日志管理
32.5 小结

32.Mysql Cluster的更多相关文章

  1. MySQL Cluster 7.3.5 集群配置实例(入门篇)

    一.环境说明: CentOS6.3(32位) + MySQL Cluster 7.3.5,规划5台机器,资料如下: 节点分布情况: MGM:192.168.137. NDBD1:192.168.137 ...

  2. MySQL Cluster 配置文件(config.ini)详解

    MySQL Cluster 配置文件(config.ini)详解 ################################################################### ...

  3. mysql集群 MySQL Cluster

    <?php /* 郑重说明2015年6月11日16:28:14,目前为止MySQL Cluster 社区版不支持INNODB,商业版支持,但是授权价格20W左右,so看此文档之前,考虑下钱 My ...

  4. MySQL Cluster 7.3.3 官方版本下载

    MySQL Cluster 是 MySQL 适合于分布式计算环境的高实用.高冗余版本.它采用了NDB Cluster 存储引擎,允许在1个 Cluster 中运行多个MySQL服务器.在MyQL 5. ...

  5. mysql集群之MYSQL CLUSTER

    1. 参考文档 http://xuwensong.elastos.org/2014/01/13/ubuntu-%E4%B8%8Bmysql-cluster%E5%AE%89%E8%A3%85%E5%9 ...

  6. 转centos65安装简测mysql cluster 7.3.7

    MySQLCluster是sharednothing分布式架构,ndb存储引擎把数据放置于内存中.可以做到无单点故障.由运行于不同服务器上的的多种进程构成,组件包括SQL节点,NDBD数据节点,管理程 ...

  7. 如何在Windows系统中配置Mysql群集(Mysql Cluster)

    Mysql群集(Cluster)简介 MySQL群集需要有一组计算机,每台计算机的角色可能是不一样的.MySQL群集中有三种节点:管理节点.数据节点和SQL节点.群集中的某计算机可 能是某一种节点,也 ...

  8. MySQL Cluster测试过程中的错误汇总--ERROR 1296 (HY000)等等

    参考资料: http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-privilege-distribution.html http://www.cl ...

  9. MySQL Cluster初步测试结果汇总图示报告 --> 用mysqlslap与sysbench进行测试

    Cluster结构图                                       测试环境简介 Mysql cluster集群测试环境 4 data node,32G 8核cpu 4 ...

随机推荐

  1. Python手记(二)

    1.map函数 map函数用于将指定的数据成员都使用指定函数进行处理. 比如: map(float, arr) map(square, arr) 这两个函数分别将arr中成员转换为float类型,以及 ...

  2. DHCP Option43配置

    在配置Option 43之前,需要保证:1. AP与DHCP服务器之间路由可达,即AP可以获取到IP地址.2. AP与AC之间路由可达,保证AP获取到AC地址后,能够与AC交互信息,建立CAPWAP隧 ...

  3. verilog 除法器

    verilog 除法器:利用二进制的除法翻译过来的硬件电路 1.1 实现算法 基于减法的除法器的算法: 对于32的无符号除法,被除数a除以除数b,他们的商和余数一定不会超过32位.首先将a转换成高32 ...

  4. HTTP Protocol - URI

    Uniform Resource Identifier (URI): compact sequence of characters that identifies an abstract or phy ...

  5. WordPress版微信小程序开发系列(一):WordPress REST API

    自动我发布开源程序WordPress版微信小程序以来,很多WordPress站长在搭建微信小程序的过程中会碰到各种问题来咨询我,有些问题其实很简单,只要仔细看看我写的文章,就可以自己解决.不过这些文章 ...

  6. Codeforces Round #551 (Div. 2) A-E

    A. Serval and Bus 算出每辆车会在什么时候上车, 取min即可 #include<cstdio> #include<algorithm> #include< ...

  7. JAVA中循环删除list中元素的方法总结(同上篇)

    印象中循环删除list中的元素使用for循环的方式是有问题的,但是可以使用增强的for循环,然后今天在使用时发现报错了,然后去科普了一下,再然后发现这是一个误区.下面就来讲一讲..伸手党可直接跳至文末 ...

  8. Java --Servlet 32个经典问题

    Servlet方面 1.说一说Servlet的生命周期? Servlet有良好的生存期的定义,包括加载和实例化.初始化.处理请求以及服务结束.这个生存期由javax.servlet.Servlet接口 ...

  9. 实战ELK(3) Kibana安装与简单实用

    第一步:下载 https://artifacts.elastic.co/downloads/kibana/kibana-6.5.1-x86_64.rpm 第二步:安装 1.安装 yum install ...

  10. 部署一个基于python语言的web发布环境

    ---恢复内容开始--- 1) 一门面向对象的语言 2)拥有丰富的库 3)可移植性 4)免费.开源 5)简单易易学 可做软件开发.人工智能.web开发等等 部署流程: Cnetos7.5+Nginx+ ...