之前的文章介绍了如何配置MysqL双主互备,见http://www.linuxidc.com/Linux/2013-05/83784.htm

这里介绍如何配合前者实现Keepalived双机热备

系统环境:CentOS6.3 x64

MysqL版本:MysqL-5.6.10

Keepalived版本:keepalived-1.2.7

MysqL-VIP:192.168.7.253

MysqL-master1:192.168.7.201

MysqL-master2:192.168.7.249

1.在MysqL-master1:192.168.7.201服务器上keepalived安装及配置

编译安装,实际以本机kernel版本为准

# wget http://www.keepalived.org/software/keepalived-1.2.7.tar.gz

# tar zxvf keepalived-1.2.7.tar.gz

# cd keepalived-1.2.7

# ./configure --prefix=/usr/local/keepalived --with-kernel-dir=/usr/src/kernels/2.6.32-

279.el6.x86_64

# make && make install

新建一个配置文件,默认keepalived启动会去/etc/keepalived目录下寻找配置文件

# mkdir /etc/keepalived

# vi /etc/keepalived/keepalived.conf

------------------

global_defs {

notification_email {

lzyangel@126.com

}

notification_email_from lzyangel@126.com

smtp_server stmp.126.com

smtp_connect_timeout 30

router_id MysqL-ha

}

vrrp_instance VI_1{

# 两台配置此处均是BACKUP

state BACKUP

# 注意网卡接口

interface eth0

virtual_router_id 51

# 优先级,另一台改为90

priority 100

advert_int 1

# 不主动抢占资源

nopreempt

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.7.253

}

}

virtual_server 192.168.7.253 3306 {

# 每个2秒检查一次real_server状态

delay_loop 2

# LVS算法

lb_algo wrr

# LVS模式

lb_kind DR

# 会话保持时间

persistence_timeout 60

protocol TCP

real_server 192.168.7.201 3306 {

weight 3

# 检测到服务down后执行的脚本

notify_down /etc/rc.d/keepalived.sh

TCP_CHECK {

# 连接超时时间

connect_timeout 10

# 重连次数

nb_get_retry 3

# 重连间隔时间

delay_before_retry 3

# 健康检查端口

connect_port 3306

}

}

----------------------

编写检测服务down后所要执行的脚本

# vi /etc/rc.d/keepalived.sh

-------------

#!/bin/sh

pkill keepalived

-------------

# chmod +x /etc/rc.d/keepalived.sh

注:此脚本是上面配置文件notify_down选项所用到的,keepalived使用notify_down选项来检查real_server的服务状态。

当发现real_server服务故障时,便触发此脚本.

我们可以看到,脚本就一个命令:

通过pkill keepalived强制杀死keepalived进程,从而实现了MysqL故障自动转移.

另外,我们不用担心两个MysqL会同时提供数据更新操作,因为每台MysqL上的keepalived的配置里面只有本机MysqL的IP+VIP,而不是两台MysqL的IP+VIP.

启动keepalived

# /usr/local/keepalived/sbin/keepalived -D

查看连接状态

# ps -aux | grep keepalived

返回:

---------------

root 25348 0.0 0.0 36792 720 ? Ss 07:15 0:00

/usr/local/keepalived/sbin/keepalived -D

root 25349 0.5 0.1 40968 2016 ? S 07:15 0:00

/usr/local/keepalived/sbin/keepalived -D

root 25350 0.0 0.1 40968 1340 ? S 07:15 0:00

/usr/local/keepalived/sbin/keepalived -D

--------------------

测试

找一台局域网PC,然后去ping MysqL的VIP,这时候MysqL的VIP是可以ping的通的

停止MysqL服务,看keepalived健康检查程序是否会触发我们编写的脚本,去kill掉keepalived进程

# service MysqLd stop

# ps -aux | grep keepalived

无返回结果

2.在MysqL-master2:192.168.7.249服务器上keepalived安装及配置

编译安装,实际以本机kernel版本为准

# wget http://www.keepalived.org/software/keepalived-1.2.7.tar.gz

# tar zxvf keepalived-1.2.7.tar.gz

# cd keepalived-1.2.7

# ./configure --prefix=/usr/local/keepalived --with-kernel-dir=/usr/src/kernels/2.6.32-

279.el6.x86_64

# make && make install

新建一个配置文件,默认keepalived启动会去/etc/keepalived目录下寻找配置文件

# mkdir /etc/keepalived

# vi /etc/keepalived/keepalived.conf

------------------

global_defs {

notification_email {

lzyangel@126.com

}

notification_email_from lzyangel@126.com

smtp_server stmp.126.com

smtp_connect_timeout 30

router_id MysqL-ha

}

vrrp_instance VI_1{

# 两台配置此处均是BACKUP

state BACKUP

# 注意网卡接口

interface eth0

virtual_router_id 51

# 优先级,另一台改为90

priority 90

advert_int 1

# 不主动抢占资源

nopreempt

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.7.253

}

}

virtual_server 192.168.7.253 3306 {

# 每个2秒检查一次real_server状态

delay_loop 2

# LVS算法

lb_algo wrr

# LVS模式

lb_kind DR

# 会话保持时间

persistence_timeout 60

protocol TCP

real_server 192.168.7.249 3306 {

weight 3

# 检测到服务down后执行的脚本

notify_down /etc/rc.d/keepalived.sh

TCP_CHECK {

# 连接超时时间

connect_timeout 10

# 重连次数

nb_get_retry 3

# 重连间隔时间

delay_before_retry 3

# 健康检查端口

connect_port 3306

}

}

----------------------

编写检测服务down后所要执行的脚本

# vi /etc/rc.d/keepalived.sh

-------------

#!/bin/sh

pkill keepalived

-------------

# chmod +x /etc/rc.d/keepalived.sh

启动keepalived

# /usr/local/keepalived/sbin/keepalived -D

# ps -aux | grep keepalive

至此配置完成,网站后台只需要配置MysqL-VIP:192.168.7.253虚拟地址即可

这里实际连接的master数据库,以哪台master先开MysqL服务为准。

当master1:192.168.7.201 MysqL端口挡掉或者服务器异常关闭,keepalived会自动跳转到master2:192.168.7.249.

因为两台数据库的数据时同步的,用户访问的是MysqL-VIP:192.168.7.253虚拟地址,所以网站数据连接会无缝透明转接到master2服务器,实现双机热备+数据同步功能。保证网站数据库的实时可用性。

注:当某一台master服务器挂掉恢复后,需同时打开MysqL服务和keepalived服务,保证另一台服务器如果挂掉会无缝转接。

所以建议MysqL与keeplived设置服务开机启动。

# chkconfig MysqLd on

# vi /etc/rc.local

---------------

/usr/local/keepalived/sbin/keepalived -D

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

centos MySQL 双机_CentOS利用Keepalived构建双主MySQL+双机热备相关推荐

  1. CENTOS利用Keepalived构建双主MySQL+双机热备

    之前的博文介绍了如何配置MYSQL双主互备. 见http://showerlee.blog.51cto.com/2047005/1187693 这里介绍如何配合前者实现Keepalived双机热备 系 ...

  2. 基于heartbeat v1配置mysql和httpd的高可用双主模型

    一.配置高可用集群的前提:(以两节点的heartbeat为例) ⑴时间必须保持同步 ⑵节点之间必须用名称互相通信 建议使用/etc/hosts,而不要用DNS 集群中使用的主机名为`uname -n` ...

  3. MariaDB+Keepalived 搭建双主HA数据库服务

    1.安装mysql   在linux版本下,mysql称为mariadb,可以选择在线安装,或编译安装.MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可.开 ...

  4. 利用keepalived和haproxy配置mysql的高可用负载均衡

    http://www.cnblogs.com/tae44/p/4717334.html 实验系统:CentOS 6.6_x86_64(2.6.32-504.30.3.el6.x86_64) 实验前提: ...

  5. 【架构优化】keepalived构建高可用MySQL HA

    keepalived是一个类似于layer3, 4 & 5交换机制的软件,也就是我们平时说的第3层.第4层和第5层交换.Keepalived的作用是检测web服务器的状态,如果有一台web服务 ...

  6. Mysql+Keepalived实现双主热备

    我们通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务.当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短 MySQL双主复制,即互为Mast ...

  7. MySQL集群系列2:通过keepalived实现双主集群读写分离

    在上一节基础上,通过添加keepalived实现读写分离. 首先关闭防火墙 安装keepalived keepalived 2台机器都要安装 rpm -q openssl kernel-devel y ...

  8. mysql双主多从高可用配置_双主MySQL+keepalived高可用配置

    部署双节点双主数据库服务器MySQL 分别在二台服务器上安装mysql,要求同版本或主服务器比从服务器版本高. 主机mysql配置: Vi /etc/my.cnf [mysqld] Log-bin=m ...

  9. mysql从 lvs_mysql主从之LVS+keepalived+双主MySQL 负载均衡

    LVS(Linux Virtual Server)即Linux 虚拟服务器,是一个的开源负载均衡项目,目前LVS 已经被集成到Linux 内核模块中.LVS 是四层负载均衡,也就是说建立在OSI 模型 ...

最新文章

  1. Lecture 0 --基本说明
  2. DAL(数据库访问层)
  3. 前沿技术探秘:知识图谱构建流程及方法
  4. 开机后将sim/uim卡上的联系人写入数据库
  5. Spring整合Mongodb,Maven的依赖,Spring配置,MongoDB的公共操作类,使用SpringMVC的Controller进行测试并返回结果的案例
  6. JS----JavaScript数组去重(12种方法,史上最全)
  7. 抗击海冰 地理信息系统来帮忙
  8. JPA 2.1类型转换器–保留枚举的更好方法
  9. 什么时候使用静态方法
  10. 【HDU - 6231】K-th Number(二分,思维)
  11. java如何让线程阻塞_Java中如何使一个线程进入阻塞态?
  12. Python的主要功能是什么?
  13. oracle 中WITH AS,oracle的with as用法
  14. 印度大量投资太阳能已取得成效 足以媲美煤炭
  15. 51单片机电子制作------篮球比赛计分器
  16. 【观察】揭秘宏杉科技存储自主创新“登顶”之路
  17. eeglab和matlab,Matlab之EEGLAB工具箱脑电数据预处理
  18. matlab闭合导线代码,【求助】闭合导线简易平差Matlab代码需要大神帮忙
  19. Https 证书相关
  20. uptool u盘量产工具 v2.093

热门文章

  1. Flutter 实例 - 加载更多的ListView
  2. NPS cisco 802.1x window7 实现认证接入网络
  3. 寻找最大的K个数,Top K问题的堆实现
  4. Android系统移植与驱动开发概述
  5. 一次详细全面的***报告
  6. firebird乱码问题
  7. 使用 soapUI 测试 REST 服务
  8. 临时表与表变量深入探究
  9. Struts 中的自定义异常
  10. spring中使用内存数据库(Embedded database)