Keepalived + Mysql双主-容灾配置

1、利用keepalived实现mysql灾备自动切换

  • mysql的灾备应使用双主结构,主从结构对灾备有一定要求。从节点不能直接升级为主节点,需要确认同步完全、切换配置升级为主。双主结构便可直接漂移ip即可。
  • Mysql双主搭建流程不再本文描述范围

2、推荐一台mysql机器搭配一个keepalived防止 keepalived服务挂掉。

本文由于是在单机下部署测试,故使用了一个keepalived服务

1、keepalived配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
 ! Configuration File for keepalived

global_defs {
router_id dbmaster //
}

# 定一个keepalived服务实例
vrrp_instance VI_1 {
# 如果多个keepalived实例此处可设置为BACKUP
state MASTER
interface enp4s0f1
virtual_router_id 51
priority 100
nopreempt # 此设置代表不抢占, 也就是一台升级为主,
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
# 虚拟的ip 比如此处代理的是mysql,代码或程序中则使用此ip
192.168.31.60
}
}

virtual_server 192.168.31.60 3306 {
delay_loop 6
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
# mysql 真实ip 端口
real_server 192.168.31.65 53306 {
weight 1
TCP_CHECK {
connect_timeout 3
retry 3
connect_port 53306
delay_before_retry 3
}
}
# mysql 真实ip 端口
real_server 192.168.31.65 53406 {
weight 1
TCP_CHECK {
connect_timeout 3
retry 3
connect_port 53406
delay_before_retry 3
}
}
}