MySQL 高可用:mysql+Lvs+Keepalived 负载均衡及故障转移
系统信息:
mysql主库 192.168.1.152 CentOS 5.6 mysql 5.6.
mysql从库 192.168.1.153 CentOS 5.6 mysql 5.6.
VIP 192.168.1.150
mysql 主主同步都设置 auto-increment-offset,auto-increment-increment ,以避免自增列冲突。
参考:MySQL 高可用:主主复制(双主复制)
LVS 下载:
http://www.linuxvirtualserver.org/software/
http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz
Keepalived 下载:
http://www.keepalived.org/software/
http://www.keepalived.org/software/keepalived-1.2.19.tar.gz
# LVS 安装配置:(yum -y install ipvsadm)
# Keepalived 安装配置
#编辑或者新建(主备除两地方,其他一样.备库改为 :state BACKUP ,priority 50)
vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs { #全局标识模块
notification_email { #定义邮件通知
test@.com #目标邮箱
}
notification_email_from test@.com #发送邮箱
smtp_server 127.0.0.1 #发送邮箱的smtp服务器
smtp_connect_timeout #smtp服务器连接超时时间
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER #本实例启动状态:MASTER/BACKUP
interface eth0 #监控的网络接口
virtual_router_id #vrrp实例(同一个组主备服务器设置一样)
priority #优先级高的为master,不能超过255。(BACKUP可设置为50)
advert_int #均衡器检测间隔1秒(服务器设置都一样)
authentication { #验证类型及密码(服务器设置都一样)
auth_type PASS #认证方式,PASS或AH
auth_pass #认证密码
}
virtual_ipaddress { #虚拟ip地址virtual_ipaddress,可以定义多个
192.168.1.150
}
}
virtual_server 192.168.1.150 { #定义虚拟服务器,与上面的virtual_server一样
delay_loop #健康检查时间间隔,6秒
lb_algo rr #负载均衡调度算法:rr|wrr|lc|wlc|sh|dh|lblc
lb_kind NAT #负载均衡转发规则:NAT|DR|TUN
nat_mask 255.255.255.0
persistence_timeout #回话保持时间50秒,动态服务建议开启
protocol TCP #转发协议protocol,一般有tcp和udp两种
#后端真实服务器,有几台就设置几个
real_server 192.168.1.152 {
weight #权重越大负载分越大,0表示失效
SSL_GET { #健康检查方式:HTTP_GET|SSL_GET|TCP_CHECK|SMTP_CHECK|MISC_CHECK
connect_timeout
nb_get_retry
delay_before_retry
}
}
real_server 192.168.1.153 {
weight
SSL_GET {
connect_timeout
nb_get_retry
delay_before_retry
}
}
}
#152服务器IP
[root@centos152 keepalived]# ip a
: lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue
link/loopback ::::: brd :::::
inet 127.0.0.1/ scope host lo
: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast qlen
link/ether :0c::3b:c4:a5 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.152/ brd 192.168.1.255 scope global eth0
inet 192.168.1.150/ scope global eth0
#现在在第三台mysql服务器中连接VIP测试 #ping VIP 正常
ping 192.168.1.150 #连接到 VIP 正常
mysql -umysqlproxy -pmysqlproxy -h192.168.1. --port3306 #到 mysql 服务器 和 查看进程,查看用户 mysqlproxy 连接到哪台服务器
mysql> show processlist; #停止 mysqlproxy 所在的服务器keepalived 服务
/etc/rc.d/init.d/keepalived stop 此时在150 连接的mysql切换到另一台服务器的mysql数据库了。 /etc/rc.d/init.d/keepalived start
末尾有些测试还没有规范,仅供参考。
更多参考:
mysql高可用探究(二)Lvs+Keepalived+Mysql单点写入主主同步高可用方案
MySQL 高可用:mysql+Lvs+Keepalived 负载均衡及故障转移的更多相关文章
- 搭建LVS+Keepalived负载均衡集群
这两天学习了LVS+Keepalived负载均衡的搭建.网上的教程非常多,可是动起手来遇到不少问题. 如今把自己的搭建过程以及遇到的一些问题给分享下. 硬件环境: Macbook 8G内存.250G ...
- 001/Nginx高可用模式下的负载均衡与动静分离(笔记)
Nginx高可用模式下的负载均衡与动静分离 Nginx(engine x)是一个高性能的HTTP和反向代理服务器,具有内存少,并发能力强特点. 1.处理静态文件.索引文件以及自动索引:打开文件描述符缓 ...
- (转)CentOS7 搭建LVS+keepalived负载均衡(一)
原文:http://blog.csdn.net/u012852986/article/details/52386306 CentOS7 搭建LVS+keepalived负载均衡(一) CentOS7 ...
- MySQL高可用基础之keepalived+双主复制【转】
环境:MySQL-VIP:192.168.1.3MySQL-master1:192.168.1.1MySQL-master2:192.168.1.2 OS版本:CentOS release 6.4 ( ...
- LVS+keepalived负载均衡
背景: 随着你的网站业务量的增长你网站的服务器压力越来越大?需要负载均衡方案!商业的硬件如F5又太贵,你们又是创业型互联公司如何有效节约成本,节省不必要的浪费?同时实现商业硬件一样的高 ...
- linux 负载均衡配置 keepalive lvs 使用nginx转发 CentOS7 搭建LVS+keepalived负载均衡
最近希望能够配置一下负载均衡,在虚拟机上面,但是网上找了很多资料很零散,对于不了解的人,很多不够详细,最近终于做好了,把具体的步骤写下来,方便各位网友查阅学习 这个实验需要安装nginx如果没有安装过 ...
- mysql+mycat搭建稳定高可用集群,负载均衡,主备复制,读写分离
数据库性能优化普遍采用集群方式,oracle集群软硬件投入昂贵,今天花了一天时间搭建基于mysql的集群环境. 主要思路 简单说,实现mysql主备复制-->利用mycat实现负载均衡. 比较了 ...
- mysql高可用之LVS + KEEPALIVE + MYSQL
1.架构图 注意 (一) Mysql需要把bind-address的配置去掉,否则无法实现虚拟ip访问 (二) 关闭所有linux防火墙:/sbin/iptables –F(可能没用) (三) ...
- MySQL高可用架构之Keepalived+主从架构部署
针对目前公司的数据库架构要做统计规划和调整,所以针对不同的业务环境要选择合适的架构就比较重要,同时作为运维人员又要考虑到维护的便捷性(不能做过多架构维护),最终停留在mha+vip/主从+vip/my ...
随机推荐
- 015 反射中的 Class.forName() 与 ClassLoader.loadClass() 的区别
作者:nnngu GitHub:https://github.com/nnngu 博客园:http://www.cnblogs.com/nnngu 简书:https://www.jianshu.com ...
- 模板:插头dp
前言: 严格来讲有关dp的都不应该叫做模板,因为dp太活了,但是一是为了整理插头dp的知识,二是插头dp有良好的套路性,所以姑且还叫做模板吧. 这里先推荐一波CDQ的论文和这篇博客http://www ...
- 51nod 1785 数据流中的算法 | STL的应用
51nod 1785 数据流中的算法 题面 动态求平均数.方差.中位数. 题解 这道题的坑: 平均数在答案中是向下取整输出并在后面添加".00" 方差:平方的平均数减去平均数的平方 ...
- Python 使用CPickle和pickle模块进行序列化和反序列化
#Cpickle使用C语言进行编写的相比pickle来说效率高很多 #-*-coding:utf-8-*-'''序列化操作'''try: import cPickle as pickleexce ...
- Android中用GridView实现九宫格的两种方法(转)
Android中用GridView实现九宫格的两种方法http://blog.csdn.net/shakespeare001/article/details/7768455 1.传统办法:实现一个继承 ...
- [Vani有约会]雨天的尾巴——树上差分+动态开点线段树合并
题目描述 首先村落里的一共有n座房屋,并形成一个树状结构.然后救济粮分m次发放,每次选择两个房屋(x,y),然后对于x到y的路径上(含x和y)每座房子里发放一袋z类型的救济粮. 然后深绘里想知道,当所 ...
- laravel 获取所有表名
$tables = DB::connection()->getDoctrineSchemaManager()->listTableNames(); 需要 doctrine/dbal 扩展, ...
- mac 必备工具
iTerm 可以在一个窗口中垂直.水平分割窗口,而不用切换来切换去 一些基本功能如下: 1.分窗口操作:shift+command+d(横向)command+d(竖向) 2.查找和粘贴:command ...
- 题解【bzoj2002 [Hnoi2010]Bounce 弹飞绵羊】
Description 给 \(n\) 个点以及它们的弹力系数 \(k_i\) ,含义为 可以弹到 \(i + k_i\) 的位置. 支持两个东西,修改一个点的弹力系数:求一个点要弹多少次弹出 \(n ...
- 完美配置Python3.5+Anaconda+PyQt5,实现UI和其他模块的结合
sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...