使用KeepAlived搭建MySQL高可用环境
使用KeepAlived搭建MySQL的高可用环境。 首先搭建MySQL的主从复制 在Master开启binlog,创建复制帐号, 然后在Slave输入命令 cha
使用KeepAlived搭建MySQL的高可用环境。
首先搭建MySQL的主从复制
在Master开启binlog,创建复制帐号,
然后在Slave输入命令
change master to
master_host='192.168.1.70',
master_port=3306,
master_user='xx',
master_password='xx';
然后使用start slave开启复制。
然后编译安装KeepAlived
进入keepalived-1.2.12目录
然后使用
./configure
make && make install
然后在Master服务器编辑KeepAlived的配置文件
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id HA_MySQL
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 100
advert_int 1
nopreempt
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.199
}
}
virtual_server 192.168.1.199 3306 {
delay_loop 2
lb_algo wrr
lb_kind DR
persistence_timeout 60
protocol TCP
real_server 192.168.1.70 3306 {
weight 3
notify_down /root/shutdown.sh
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 3306
}
}
}
然后编辑Slave的配置文件
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id HA_MySQL
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 90
advert_int 1
nopreempt
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.199
}
}
virtual_server 192.168.1.199 3306 {
delay_loop 2
lb_algo wrr
lb_kind DR
persistence_timeout 60
protocol TCP
real_server 192.168.1.80 3306 {
weight 3
notify_down /root/shutdown.sh
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 3306
}
}
}
其中
priority 表示优先级
virtual_ipaddress 虚拟的IP地址(VIP)
delay_loop 每个2秒检查一次real_server状态
notify_down 检测到服务down后执行的脚本
connect_timeout 连接超时时间
nb_get_retry 重连次数
delay_before_retry 重连间隔时间
connect_port 健康检查端口
shutdown.sh 可以考虑加入邮件告警的功能。
#!/bin/bash
pkill keepalived
在两个服务器上启动MySQL和KeepAlived服务
service mysql start
service keepalived start
Master的server_id为1
Slave的server_id为2
然后 连接VIP的MySQL,可以看到已经连接到了Master服务器(server_id为1)
如果kill掉Master的MySQL,KeepAlived会自动转移到Slave
在Master服务器上执行
killall mysqld
然后再次查看server_id,
短暂的失去连接之后,再次连接上VIP,server_id已经变为2,说明VIP已经指向了Slave
推荐阅读
-
CentOS下RabbitMq高可用集群环境搭建教程
-
基于Keepalived的MySQL高可用
-
Spark快速入门系列(6) | Spark环境搭建—standalone(3) 配置HA高可用模式
-
基于mysql+mycat搭建稳定高可用集群负载均衡主备复制读写分离操作
-
MySQL高可用架构:mysql+keepalived实现
-
Ubuntu编译安装HAprox+Keepalived+MySQL负载高可用架构(结合Docker容器配置)
-
Haproxy+Keepalived高可用环境部署梳理(主主和主从模式)
-
004.MySQL双主+Keepalived高可用
-
HDFS高可用性HA架构原理及环境搭建
-
LVS+Nginx负载均衡、LVS高可用环境搭建、安装Keepalived