32.Mysql Cluster
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的更多相关文章
- MySQL Cluster 7.3.5 集群配置实例(入门篇)
一.环境说明: CentOS6.3(32位) + MySQL Cluster 7.3.5,规划5台机器,资料如下: 节点分布情况: MGM:192.168.137. NDBD1:192.168.137 ...
- MySQL Cluster 配置文件(config.ini)详解
MySQL Cluster 配置文件(config.ini)详解 ################################################################### ...
- mysql集群 MySQL Cluster
<?php /* 郑重说明2015年6月11日16:28:14,目前为止MySQL Cluster 社区版不支持INNODB,商业版支持,但是授权价格20W左右,so看此文档之前,考虑下钱 My ...
- MySQL Cluster 7.3.3 官方版本下载
MySQL Cluster 是 MySQL 适合于分布式计算环境的高实用.高冗余版本.它采用了NDB Cluster 存储引擎,允许在1个 Cluster 中运行多个MySQL服务器.在MyQL 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 ...
- 转centos65安装简测mysql cluster 7.3.7
MySQLCluster是sharednothing分布式架构,ndb存储引擎把数据放置于内存中.可以做到无单点故障.由运行于不同服务器上的的多种进程构成,组件包括SQL节点,NDBD数据节点,管理程 ...
- 如何在Windows系统中配置Mysql群集(Mysql Cluster)
Mysql群集(Cluster)简介 MySQL群集需要有一组计算机,每台计算机的角色可能是不一样的.MySQL群集中有三种节点:管理节点.数据节点和SQL节点.群集中的某计算机可 能是某一种节点,也 ...
- MySQL Cluster测试过程中的错误汇总--ERROR 1296 (HY000)等等
参考资料: http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-privilege-distribution.html http://www.cl ...
- MySQL Cluster初步测试结果汇总图示报告 --> 用mysqlslap与sysbench进行测试
Cluster结构图 测试环境简介 Mysql cluster集群测试环境 4 data node,32G 8核cpu 4 ...
随机推荐
- Bootstrap Tooltip 显示换行
<a class="pink" href="#" data-toggle="tooltip" data-placement=" ...
- C#编程经验-function advanced params
function advanced params:outrefparamsnot useful,to use them is a burden,so i dont use themdefects:ou ...
- php 7 event 安装
有效安排I/O,时间和信号的扩展 使用可用于特定平台的最佳I/O通知机制的事件,是PHP基础设施的libevent端口. 下载地址:http://pecl.php.net/package/event ...
- 网络之OSI七层协议模型、TCP/IP四层模型
13.OSI七层模型各层分别有哪些协议及它们的功能 在互联网中实际使用的是TCP/IP参考模型.实际存在的协议主要包括在:物理层.数据链路层.网络层.传输层和应用层.各协议也分别对应这5个层次而已. ...
- python导入requests库一直报错原因总结 (文件名与库名冲突)
花了好长时间一直在搞这个 源代码: 一直报如下错误: 分析原因: 总以为没有导入requests库,一直在网上搜索各种的导入库方法(下载第三方的requests库,用各种命令工具安装),还是报错 后来 ...
- Redis 服务端配置——Could not connect to Redis at 127.0.0.1:6379: Connection refused
[root@centoszang 桌面]# redis-cli Could : Connection refused Could : Connection refused not connected& ...
- 用GDB调试程序(二)
GDB的命令概貌——————— 启动gdb后,就你被带入gdb的调试环境中,就可以使用gdb的命令开始调试程序了,gdb的命令可以使用help命令来查看,如下所示: /home/hchen> g ...
- pass parameter by endpoint, this is for websocket
使用了Java的字符串:@ServerEndpoint("/chat/{room}")public class MyEndpoint {@OnMessagepublic void ...
- ORACLE在IMP时候出现数据丢失
IMP-00019: 由于 ORACLE 错误 12899 而拒绝行 IMP-00003: 遇到 ORACLE 错误 12899 ORA-12899: 列 "JACKEYJ".&q ...
- 同步锁Lock(互斥锁)
同步锁作用: 在我当前包含(lock.acquire() 和 lock.release()之间 )的代码没有执行完成,不进行线程切换,必须等我执行完了,下一个线程才能继续执行(为什么要用同步锁,假如我 ...