keepalived mysql_MySQL高可用性之Keepalived+Mysql(双主热备)

环境描述:

OS:CentOS6.5_X64

MySQL-VIP:192.168.1.200

MySQL-master1:192.168.1.201

MySQL-master2:192.168.1.202

1、配置两台Mysql主主同步

#主主同步配置完毕,查看同步状态Slave_IO和Slave_SQL是YES说明主主同步成功。

2ee7bd8da8431ae6a0fc2041766b0072.png

在master插入数据测试下:

de791e8ba4157c427ee53161c4d94c38.png

在backup查看是否同步成功:

75d2381cb3de54df23a6e5274bc2e3d6.png

可以看到已经成功同步过去,同样在backup插入到user表数据,一样同步过去,双主就做成功了。

2、配置keepalived实现热备

[root@backup ~]# yum install -y pcre-devel openssl-devel popt-devel #安装依赖包

[root@master ~]# wget http://www.keepalived.org/software/keepalived-1.2.7.tar.gz

[root@master ~]# tar -xf keepalived-1.2.7.tar.gz -C /usr/local/src/

[root@master ~]# cd /usr/local/

[root@master ~]# ln -sv /usr/local/src/keepalived-1.2.7/ keepalived  #根据实际情况修改

[root@master ~]# cd keepalived

[root@master ~]#./configure --prefix=/usr/local/keepalived

make && make install

#将keepalived配置成系统服务

配置keepalived

我们自己在新建一个配置文件,默认情况下keepalived启动时会去/etc/keepalived目录下找配置文件

[root@master ~]# vi /etc/keepalived/keepalived.conf

global_defs {

notification_email {

862572301@qq.com

}

notification_email_from 862572301@qq.com

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id MYSQL_HA      #标识,双主相同

}

vrrp_instance VI_1 {

state BACKUP   #两台配置此处均是BACKUP

interface eth0

virtual_router_id 51    #主备相同

priority 100             #优先级,另一台backup改为90

advert_int 1

nopreempt                  #不抢占,只在优先级高master的机器上设置即可,优先级低backup的机器不设置

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.1.200

}

}

virtual_server 192.168.1.200 3306 {

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

#lb_algo wrr    #LVS算法,用不到,我们就关闭了

#lb_kind DR    #LVS模式,如果不关闭,备用服务器不能通过VIP连接主MySQL

persistence_timeout 60   #会话保持时间,同一IP的连接60秒内被分配到同一台真实服务器

protocol TCP

real_server 192.168.1.201 3306 {   #检测本地mysql,backup也要写检测本地mysql

weight 3

notify_down /usr/local/keepalived/mysql.sh   #当mysq服down时,执行此脚本,杀死keepalived实现切换

TCP_CHECK {

connect_timeout 10    #连接超时时间

nb_get_retry 3      #重连次数

delay_before_retry 3   #重连间隔时间

connect_port 3306      #健康检查端口

}

}

}

0df49e42c93dd49cc6b4a66652c4dd36.png

3、可通过查看/var/log/messges日志,看出主备切换过程

4、master服务器故障恢复后,是否主动抢占资源,成为活动服务器。

附:keepalived-1.2.7 keepalived实现服务高可用http://down.51cto.com/data/2440924

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

[root@master ~]# vi /etc/keepalived/keepalived.conf

global_defs {

notification_email {

862572301@qq.com

}

notification_email_from 862572301@qq.com

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id MYSQL_HA      #标识,双主相同

}

vrrp_instance VI_1 {

state BACKUP   #两台配置此处均是BACKUP

interface bond0.101                   #------->这边指定配置的聚合网卡bond0.101

virtual_router_id 51    #主备相同

priority 100             #优先级,另一台backup改为90

advert_int 1

nopreempt                  #不抢占,只在优先级高master的机器上设置即可,优先级低backup的机器不设置

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

10.104.101.13/24                 #------->这边设置虚拟的VIP地址

}

}

virtual_server 10.104.101.13/24 3306 {            #--------->指定虚拟VIP地址的配置信息

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

#lb_algo wrr    #LVS算法,用不到,我们就关闭了

#lb_kind DR    #LVS模式,如果不关闭,备用服务器不能通过VIP连接主MySQL

persistence_timeout 60   #会话保持时间,同一IP的连接60秒内被分配到同一台真实服务器

protocol TCP

real_server 10.104.101.12 3306 {   #10.104.101.12指本地配置的IP地址,检测本地mysql,backup也要写检测本地mysql

weight 3

notify_down /usr/local/keepalived/mysql.sh   #当mysq服down时,执行此脚本,杀死keepalived实现切换

TCP_CHECK {

connect_timeout 10    #连接超时时间

nb_get_retry 3      #重连次数

delay_before_retry 3   #重连间隔时间

connect_port 3306      #健康检查端口

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值