这篇文章主要讲解了“MySQL+KeepAlived+LVS单点写入主主同步高可用架构实例教程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL+KeepAlived+LVS单点写入主主同步高可用架构实例教程”吧!

㈠ 实战环境

服务器名·IPOSMySQLodd.example.com192.168.1.116RHEL-5.85.5.16even.example.com192.168.1.115RHEL-5.85.5.16

㈡ 方案优缺点

优点

● 安装配置简单, 实现方便,高可用效率好,可以根据服务与系统的可用性多方面进行切换
● 可以将写 VIP 和读 VIP 分别进行设置,为读写分离做准备
● 可以在后面添加多个从服务器,并做到负载均衡

缺点

● 在启动或者恢复后会立即替换掉定义的 sorry_server
因此如果要实现指定条件替换或者不替换需要通过其他方式实现,比如:临时更改MySQL的端口等
● 扩展不是很方便
● 切换需要 1s 左右的时间


㈢ 方案适用场景

这个方案适用于只有两台数据库服务器并且还没有实现数据库的读写分离的情况、读和写都配置 VIP
这个方案能够便于单台数据库的管理维护以及切换工作
比如进行大表的表结构更改、数据库的升级等都是非常方便的


㈣ 方案架构图

㈤ 部署步骤

⑴ MySQL 安装

请查阅我之前的一篇文章:MySQL 5.5 三大安装方式:【二进制、源代码编译 和 RPM 包】 安装步骤及优缺点比较

⑵ MySQL主主同步配置

这也请查阅我之前的文章哈:MySQL 主主同步配置

⑶ LVS 安装

在ODD EVEN:

# wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz
# ln -s /usr/src/kernels/2.6.18-308.el5xen-i686/ /usr/src/linux
# tar -zxv -f ipvsadm-1.24.tar.gz
# cd ipvsadm-1.24
# make
# make install

⑷ KeepAlived安装

在ODD EVEN:

# wget http://www.keepalived.org/software/keepalived-1.1.19.tar.gz
# tar -zxv -f keepalived-1.1.19.tar.gz
# cd keepalived-1.1.19
# ./configure --prefix=/usr/local/keepalived
# make
# make install
# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
# cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
# mkdir /etc/keepalived

⑸ KeepAlived配置

在 ODD

global_defs{notification_email{linwaterbin@gmail.com}notification_email_frombychjzh@gmail.comsmtp_serversmtp.gmail.comsmtp_connect_timeout30router_idLVS1}vrrp_sync_grouptest{group{loadbalance}}vrrp_instanceloadbalance{stateBACKUPinterfaceeth0lvs_sync_daemon_intefaceeth0virtual_router_id51priority150advert_int1authentication{auth_typePASSauth_pass1111}virtual_ipaddress{192.168.1.128deveth0labeleth0:1}}virtual_server192.168.1.1283306{delay_loop6lb_algorrlb_kindDRpersistence_timeout20protocolTCPsorry_server192.168.1.1153306real_server192.168.1.1163306{weight3TCP_CHECK{connect_timeout3nb_get_retry3delay_before_retry3connect_port3306}}}

在EVEN:

大部分都和 ODD 一样、只有 2 处:

● state BACKUP

● priority 150


⑹ ODD EVEN 的 realsever 配置

在 ODD EVEN 上

#!/bin/bash#description:ConfigrealserverloandapplynoarpSNS_VIP=192.168.1.128/etc/rc.d/init.d/functionscase"$1"instart)ifconfiglo:0$SNS_VIPnetmask255.255.255.255broadcast$SNS_VIP/sbin/routeadd-host$SNS_VIPdevlo:0echo"1">/proc/sys/net/ipv4/conf/lo/arp_ignoreecho"2">/proc/sys/net/ipv4/conf/lo/arp_announceecho"1">/proc/sys/net/ipv4/conf/all/arp_ignoreecho"2">/proc/sys/net/ipv4/conf/all/arp_announcesysctl-p>/dev/null2>&1echo"RealServerStartOK";;stop)ifconfiglo:0downroutedel$SNS_VIP>/dev/null2>&1echo"0">/proc/sys/net/ipv4/conf/lo/arp_ignoreecho"0">/proc/sys/net/ipv4/conf/lo/arp_announceecho"0">/proc/sys/net/ipv4/conf/all/arp_ignoreecho"0">/proc/sys/net/ipv4/conf/all/arp_announceecho"RealServerStoped";;*)echo"Usage:$0{start|stop}"exit1esacexit0


⑺ 启动 KeepAlived和 realsever

在 ODD EVEN

# /etc/rc.d/init.d/realserver.sh start
# /etc/rc.d/init.d/keepalived start
# echo “/etc/rc.d/init.d/realserver.sh start” >> /etc/rc.local
# echo “/etc/rc.d/init.d/keepalived start” >> /etc/rc.local

配置到这边大概都已经差不多了、接下来看看测试

㈥ 简单测试

停掉ODD MySQL Server 、看看能否自动却换到 sorry_server

停止前:[root@oddkeepalived]#ipvsadm-lnIPVirtualServerversion1.2.1(size=4096)ProtLocalAddress:PortSchedulerFlags->RemoteAddress:PortForwardWeightActiveConnInActConnTCP192.168.1.128:3306rrpersistent20->192.168.1.116:3306Local300停止:[mysql@odd~]$mysqladminshutdown13050800:53:50mysqld_safemysqldfrompidfile/home/mysql/mysql/data/odd.example.com.pidended[1]+Donemysqld_safe停止后:[root@oddkeepalived]#ipvsadm-lnIPVirtualServerversion1.2.1(size=4096)ProtLocalAddress:PortSchedulerFlags->RemoteAddress:PortForwardWeightActiveConnInActConnTCP192.168.1.128:3306rrpersistent20->192.168.1.115:3306Route100成功!!

<!-- Baidu Button BEGIN --&gt

感谢各位的阅读,以上就是“MySQL+KeepAlived+LVS单点写入主主同步高可用架构实例教程”的内容了,经过本文的学习后,相信大家对MySQL+KeepAlived+LVS单点写入主主同步高可用架构实例教程这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!