centos MySQL 双机_CentOS利用Keepalived构建双主MySQL+双机热备
之前的文章介绍了如何配置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+双机热备相关推荐
- CENTOS利用Keepalived构建双主MySQL+双机热备
之前的博文介绍了如何配置MYSQL双主互备. 见http://showerlee.blog.51cto.com/2047005/1187693 这里介绍如何配合前者实现Keepalived双机热备 系 ...
- 基于heartbeat v1配置mysql和httpd的高可用双主模型
一.配置高可用集群的前提:(以两节点的heartbeat为例) ⑴时间必须保持同步 ⑵节点之间必须用名称互相通信 建议使用/etc/hosts,而不要用DNS 集群中使用的主机名为`uname -n` ...
- MariaDB+Keepalived 搭建双主HA数据库服务
1.安装mysql 在linux版本下,mysql称为mariadb,可以选择在线安装,或编译安装.MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可.开 ...
- 利用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) 实验前提: ...
- 【架构优化】keepalived构建高可用MySQL HA
keepalived是一个类似于layer3, 4 & 5交换机制的软件,也就是我们平时说的第3层.第4层和第5层交换.Keepalived的作用是检测web服务器的状态,如果有一台web服务 ...
- Mysql+Keepalived实现双主热备
我们通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务.当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短 MySQL双主复制,即互为Mast ...
- MySQL集群系列2:通过keepalived实现双主集群读写分离
在上一节基础上,通过添加keepalived实现读写分离. 首先关闭防火墙 安装keepalived keepalived 2台机器都要安装 rpm -q openssl kernel-devel y ...
- mysql双主多从高可用配置_双主MySQL+keepalived高可用配置
部署双节点双主数据库服务器MySQL 分别在二台服务器上安装mysql,要求同版本或主服务器比从服务器版本高. 主机mysql配置: Vi /etc/my.cnf [mysqld] Log-bin=m ...
- mysql从 lvs_mysql主从之LVS+keepalived+双主MySQL 负载均衡
LVS(Linux Virtual Server)即Linux 虚拟服务器,是一个的开源负载均衡项目,目前LVS 已经被集成到Linux 内核模块中.LVS 是四层负载均衡,也就是说建立在OSI 模型 ...
最新文章
- Lecture 0 --基本说明
- DAL(数据库访问层)
- 前沿技术探秘:知识图谱构建流程及方法
- 开机后将sim/uim卡上的联系人写入数据库
- Spring整合Mongodb,Maven的依赖,Spring配置,MongoDB的公共操作类,使用SpringMVC的Controller进行测试并返回结果的案例
- JS----JavaScript数组去重(12种方法,史上最全)
- 抗击海冰 地理信息系统来帮忙
- JPA 2.1类型转换器–保留枚举的更好方法
- 什么时候使用静态方法
- 【HDU - 6231】K-th Number(二分,思维)
- java如何让线程阻塞_Java中如何使一个线程进入阻塞态?
- Python的主要功能是什么?
- oracle 中WITH AS,oracle的with as用法
- 印度大量投资太阳能已取得成效 足以媲美煤炭
- 51单片机电子制作------篮球比赛计分器
- 【观察】揭秘宏杉科技存储自主创新“登顶”之路
- eeglab和matlab,Matlab之EEGLAB工具箱脑电数据预处理
- matlab闭合导线代码,【求助】闭合导线简易平差Matlab代码需要大神帮忙
- Https 证书相关
- uptool u盘量产工具 v2.093