双机冗余备份和负载均衡策略(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 Node2 192.168.56.20     Data Node +Sql Node3 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 mysql2 useradd –g mysql mysql

将mysql cluster放在/usr/local/下面,执行命令:

1 tar -C /usr/local -xzvf mysql-cluster-gpl-7.1.17-linux-i686-glibc23.tar.gz2 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 data3 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.gz2 cd mysql-5.1.56-ndb-7.1.17-linux-i686-glibc233 cp bin/ndb_mgm* /usr/local/bin

更改其对应的权限,命令为:

1 cd /usr/local/bin2 chmod +x ndb_mgm*

新建目录/var/lib/mysql-cluster/,命令为:

mkdir -p /var/lib/mysql-cluster/

3、配置三台机器的配置文件

两台数据节点的在/etc目录下面创建配置文件my.cnf,其内容为:

[mysqld]ndbclusterdatadir=/usr/local/mysql/databasedir=/usr/local/mysqlport=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-cluster10 11 [ndbd]12 NodeId=213 hostname=192.168.56.1014 datadir=/usr/local/mysql/data15 16 [ndbd]17 NodeId=318 hostname=192.168.56.2019 datadir=/usr/local/mysql/data20 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
时间: 2024-12-18 02:55:23

双机冗余备份和负载均衡策略(Mysql Cluster入门安装配置指南)的相关文章

【转】双机高可用、负载均衡、MySQL(读写分离、主从自动切换)架构设计

架构简介 前几天网友来信说帮忙实现这样一个架构:只有两台机器,需要实现其中一台死机之后另一台能接管这台机器的服务,并且在两台机器正常服务时,两台机器都能用上.于是设计了如下的架构.此架构主要是由keepalived实现双机高可用,维护了一个外网VIP,一个内网VIP.正常情况时,外网VIP和内网VIP都绑定在server1服务器,web请求发送到server1的nginx,nginx对于静态资源请求就直接在本机检索并返回,对于php的动态请求,则负载均衡到server1和server2.对于SQ

双机高可用、负载均衡、MySQL(读写分离、主从自动切换)架构设计

前几天网友来信说帮忙实现这样一个架构:只有两台机器,需要实现其中一台死机之后另一台能接管这台机器的服务,并且在两台机器正常服务时,两台机器都能用上.于是设计了如下的架构. 架构简介 此架构主要是由keepalived实现双机高可用,维护了一个外网VIP,一个内网VIP.正常情况时,外网VIP和内网VIP都绑定在server1服务器,web请求发送到server1的Nginx,nginx对于静态资源请求就直接在本机检索并返回,对于PHP的动态请求,则负载均衡到server1和server2.对于S

mysql单实例安装配置指南

1.操作系统:CentOS 2.数据库: mysql-5.1.73.tar.gz 3.任务:单实例安装配置指南 提示:下载数据库有两种方式:一种是官网,另一种途径是国内镜象网站:国内镜象下载资源的速度比官网要快,例如,我们这次下载的就是国内搜狐镜象: http://mirrors.sohu.com/mysql/MySQL-5.1/ http://mirrors.sohu.com/ 整个安装过程: [[email protected] tools]#wget http://mirrors.sohu

JDBC 负载均衡读取mysql cluster

语句使用:jdbc:mysql:loadbalance://[host1][:port],[host2][:port][,[host3][:port]]...[/[database]] » [?propertyName1=propertyValue1[&propertyName2=propertyValue2]...] 例如:jdbc:mysql:loadbalance://ip1:port1, ip2:port2/rizhiyi_system?roundRobinLoadBalance=tru

公司nginx keepalived tomcat cxf 搭建高可用负载均衡实战系列1- keepalived的安装配置

1,ip说明 vip 10.50.13.67 server1 10.50.13.68 server2 10.50.13.140 2,keepalived安装 keepalived通常与lvs或者nginx结合使用保证集群的高可用,keepalived的master会绑定一个vip用来对外服务并定期向backup发送消息,当backup接收不到消息时则会判定master已经挂掉,backup将升为master并且绑定vip继续对外提供服务,从而保证高可用.下面介绍keepalived的安装 安装依

nginx的几种负载均衡策略

转自https://www.cnblogs.com/1214804270hacker/p/9325150.html 一.关于Nginx的负载均衡 在服务器集群中,Nginx起到一个代理服务器的角色(即反向代理),为了避免单独一个服务器压力过大,将来自用户的请求转发给不同的服务器. 二.Nginx负载均衡策略 负载均衡用于从"upstream"模块定义的后端服务器列表中选取一台服务器接受用户的请求.一个最基本的upstream模块是这样的,模块内的server是服务器列表: #动态服务器

【转】高可用性、负载均衡的mysql集群解决方案

高可用性.负载均衡的mysql集群解决方案 一.mysql的市场占有率 二.mysql为什么受到如此的欢迎 三.mysql数据库系统的优缺点 四.网络服务器的需求 五.什么是mysql的集群 六.什么是负载均衡 七.mysql集群部署和实现方法 八.负载均衡的配置和测试 九.Mysql集群系统的测试(测试方案+测试脚本+测试结果分析) l mysql的市场占有率 MySQL是世界上最流行的开源数据库,已有1100多万的击活安装,每天超过五万的下 载.MySQL为全球开发者.DBA和IT管理者在可

数据库读写分离和负载均衡策略

最近在学习数据库的读写分离和主从复制,采用的是一主多从策略,采用轮询的方式,读取从数据库的内容.但是,假如某一台从数据库宕机了,而客户端不知道,每次轮选到此从数据库,不都要报错?到网上查阅了资料,找到一篇不错的博文,不仅讲了解决方案,也详细的讲述了数据库的分区,分表,集群和负载均衡策略,博文原址http://www.cnblogs.com/zhongxinWang/p/4262650.html 第1章 引言 随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题.对于一个大型的互

keepalived+LVS 实现双机热备、负载均衡、失效转移 高性能 高可用 高伸缩性 服务器集群

本章笔者亲自动手,使用LVS技术实现实现一个可以支持庞大访问量.高可用性.高伸缩性的服务器集群 在读本章之前,可能有不少读者尚未使用该技术,或者部分读者使用Nginx实现应用层的负载均衡.这里大家都可以阅读本章,即使部分读者使用Nginx负载均衡,但是在大流量下性能相对于工作在链路层的LVS真是不能同日而语,并且LVS不仅可以实现WEB方面的负载均衡,其他诸如数据库.FTP.Mail等都可以实现. 通常对于小型网站,很多都使用单台服务器,顶多在弄个缓存服务器.数据库服务器.但是一旦流量上来,单台