双机冗余备份和负载均衡策略(Mysql Cluster入门安装配置指南)
MySQL Cluster 是MySQL适合于分布式计算环境的高实用、高冗余版本。它采用了NDB Cluster 存储引擎,允许在1个 Cluster 中运行多个MySQL服务器。MySQL Cluster 是一种技术,该技术允许在无共享的系统中部署“内存中”数据库的 Cluster 。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。


首先我们下载Mysql Cluster,下载链接地址为MySQL Cluster 7.1.17,我们采用的服务器为CentOS Server和Ubuntu Server,所以我们下载针对Linux Generic版本。
现在我有三台服务器,两个是CentOS Server,一个是Ubuntu Server,前两个Server分别作为Data Node和SQL Node(Data Node和SQL Node在同一个机器上面),
后者作为Management Node,如果没有真实机器的,可以用虚拟机模拟,下面是我的IP部署:
1 192.168.56.10 Data Node + Sql Node
2 192.168.56.20 Data Node +Sql Node
3 192.168.56.30 Management Node
下面是我机器的大致拓扑图结构:

接下来我们就需要对这几个节点进行详细的配置工作:
1、配置Data Node和SQL Node
目前我们采用的三台机器策略,所以把这两个节点放在同一个机器上面,所以我们在一次配置就可以了。
首先我们在192.168.56.10这台机器上面进行操作配置,192.168.56.20操作配置和这样
我们需要在ROOT账户下面执行下属操作,如果在CentOS中遇到命令找不到的问题,就参考我的BlogCentOS系统bash: groupadd: command not found问题
接下来我们要创建一个新的用户组和用户,命令如下:
1 groupadd mysql
2 useradd –g mysql mysql
将mysql cluster放在/usr/local/下面,执行命令:
1 tar -C /usr/local -xzvf mysql-cluster-gpl-7.1.17-linux-i686-glibc23.tar.gz
2 ln -s /usr/local/mysql-cluster-gpl-7.1.17-linux-i686-glibc23 /usr/local/mysql
进入到mysql目录下面,执行数据库初始化命令:
1 scripts/mysql_install_db --user=mysql
进行权限更改操作,命令为:
1 chown -R root .
2 chown -R mysql data
3 chgrp -R mysql .
2、配置Management Node
将ndb_mgmd和ndb_mgm脚本文件放入到/usr/local/bin目录下面,命令为:
1 tar -zxvf mysql-5.1.56-ndb-7.1.17-linux-i686-glibc23.tar.gz
2 cd mysql-5.1.56-ndb-7.1.17-linux-i686-glibc23
3 cp bin/ndb_mgm* /usr/local/bin
更改其对应的权限,命令为:
1 cd /usr/local/bin
2 chmod +x ndb_mgm*
新建目录/var/lib/mysql-cluster/,命令为:
mkdir -p /var/lib/mysql-cluster/
3、配置三台机器的配置文件
两台数据节点的在/etc目录下面创建配置文件my.cnf,其内容为:

[mysqld]
ndbcluster
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
port=3306
[mysql_cluster]
ndb-connectstring=192.168.56.10

如果在运行过程中出现Mysql数据库“Communications link failure due to underlying exception”问题,请参考这边博文进行配置。
针对192.168.56.20机器只要把ndb-connectstring替换一下就行了。
在管理节点机器/etc目录下面创建config.ini文件,其内容为:

1 [ndbd default]
2 NoOfReplicas=2
3 DataMemory=80M
4 IndexMemory=18M
5
6 [ndb_mgmd]
7 NodeId=1
8 hostname=192.168.56.30
9 datadir=/var/lib/mysql-cluster
10
11 [ndbd]
12 NodeId=2
13 hostname=192.168.56.10
14 datadir=/usr/local/mysql/data
15
16 [ndbd]
17 NodeId=3
18 hostname=192.168.56.20
19 datadir=/usr/local/mysql/data
20
21 [mysqld]
22 [mysqld]

4、启动集群环境
首先我们需要先启动管理节点192.168.56.30机器,执行命令:
1 ndb_mgmd -f /etc/config.ini --initial
如果出现The default config directory '/usr/local/mysql/mysql-cluster' does not exist这个错误信息,就手动创建这个文件夹。
接下来我们需要在192.168.56.10和192.168.56.20启动数据节点,命令为:
1 bin/ndbd --initial
第一次启用需要加—initial参数,第二次启动不能加这个参数。两台机器都分别执行这个命令。
接下来启动这两台机器的sql节点,命令为:
1 bin/mysqld_safe --user=mysql &
两台机器都需要执行这个命令。
最后进入到管理台查看我们的集群是否配置完成,输入命令:
1 ndb_mgm –e show
如果出现下面信息,说明配置成功:

如果看不到上述信息,可能是防火墙问题,你可以选择把CentOS的防火墙关掉,命令为:
1 /etc/init.d/iptables stop
当然你可以选择配置防火墙,开放一些必要的端口,可以参考我的另一篇文章CentOS 打开3306端口
关闭集群,执行命令:
1 ndb_mgm –e shutdown
双机冗余备份和负载均衡策略(Mysql Cluster入门安装配置指南)的更多相关文章
- FastDFS是纯C语言实现,只支持Linux,适合以中小文件为载体的在线服务,还可以冗余备份和负载均衡
一.理论基础 FastDFS比较适合以中小文件为载体的在线服务,比如跟NGINX(APACHE)配合搭建图片服务器. 分布式文件系统FastDFS FastDFS是纯C语言实现,只支持Linux.Fr ...
- 【转】双机高可用、负载均衡、MySQL(读写分离、主从自动切换)架构设计
架构简介 前几天网友来信说帮忙实现这样一个架构:只有两台机器,需要实现其中一台死机之后另一台能接管这台机器的服务,并且在两台机器正常服务时,两台机器都能用上.于是设计了如下的架构.此架构主要是由kee ...
- 双机高可用、负载均衡、MySQL(读写分离、主从自动切换)架构设计
前几天网友来信说帮忙实现这样一个架构:只有两台机器,需要实现其中一台死机之后另一台能接管这台机器的服务,并且在两台机器正常服务时,两台机器都能用上.于是设计了如下的架构. 架构简介 此架构主要是由ke ...
- Nginx服务器之负载均衡策略(6种)
一.关于Nginx的负载均衡 在服务器集群中,Nginx起到一个代理服务器的角色(即反向代理),为了避免单独一个服务器压力过大,将来自用户的请求转发给不同的服务器.详情请查看我的另一篇博客. 二.Ng ...
- nginx的几种负载均衡策略
转自https://www.cnblogs.com/1214804270hacker/p/9325150.html 一.关于Nginx的负载均衡 在服务器集群中,Nginx起到一个代理服务器的角色(即 ...
- [转帖]Nginx服务器的六种负载均衡策略详解
Nginx服务器的六种负载均衡策略详解 咔咔侃技术 2019-09-11 17:40:12 一.关于Nginx的负载均衡 在服务器集群中,Nginx起到一个代理服务器的角色(即反向代理),为了避免单独 ...
- 高可用性、负载均衡的mysql集群解决方案
高可用性.负载均衡的mysql集群解决方案 一.mysql的市场占有率 二.mysql为什么受到如此的欢迎 三.mysql数据库系统的优缺点 四.网络服务器的需求 五.什么是mysql的集群 六.什么 ...
- c数据库读写分离和负载均衡策略
最近在学习数据库的读写分离和主从复制,采用的是一主多从策略,采用轮询的方式,读取从数据库的内容.但是,假如某一台从数据库宕机了,而客户端不知道,每次轮选到此从数据库,不都要报错?到网上查阅了资料,找到 ...
- keepalived+LVS 实现双机热备、负载均衡、失效转移 高性能 高可用 高伸缩性 服务器集群
本章笔者亲自动手,使用LVS技术实现实现一个可以支持庞大访问量.高可用性.高伸缩性的服务器集群 在读本章之前,可能有不少读者尚未使用该技术,或者部分读者使用Nginx实现应用层的负载均衡.这里大家都可 ...
随机推荐
- php 用面向对象的方法对数据库增删改查
主页面 <body> <h1>主页面</h1> <table width="100%" border="1" cell ...
- SQL表格
LAMP - Linux Apache MySQL PHP MySQL - 三个层次:文件层次,服务层次,界面 常用的数据类型:int 整数float double decimal 小数varcha ...
- ubuntu下简单的驱动编译
转自:http://www.eefocus.com/jefby1990/blog/13-02/291628_c39b8.html 本文是参考了网上多篇帖子而写的算不上什么原创.唯一值得欣慰的只不过在本 ...
- WCF测试客户端的使用
进入vs安装目录下,C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE,找到WcfTestClient.exe程序,点击文件 ...
- hdu 2050:折线分割平面(水题,递归)
折线分割平面 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- poj 1087 最大流
没啥好说的,慢慢建图 Sample Input 4 A B C D 5 laptop B phone C pager B clock B comb X 3 B X X A X D Sample Out ...
- topcoder-srm701-div2-900 博弈\计算二进制位1的个数\dp\状态压缩
借用一下qls翻译过来的题面 现在有 n 个石子,A 和 B 轮流取石子,A先,每次最多可以取 m 个石子,取到最后一个石子的人获胜,但是某个人如果取完石子时候剩余石子数的二进制表示中有奇数个1,这 ...
- tar.xz文件如何解压 (已验证)
XZ压缩最新压缩率之王 xz这个压缩可能很多都很陌生,不过您可知道xz是绝大数linux默认就带的一个压缩工具. 之前xz使用一直很少,所以几乎没有什么提起. 我是在下载phpmyadmin的时候看到 ...
- DOM--1 遵循最佳实践
为重用命名空间而进行规划 (function() { function $(id) { return document.getElementById(id); } function alertNode ...
- js:数据结构笔记8--集合
集合:唯一性,无序性: 基本结构: function Set () { this.dataStore = []; this.add = add; this.remove = remove; this. ...