admin管理员组文章数量:1666734
keepalived HA 与 PostgreSQL HA 自动切换测试
搭建环境
服务器 | 角色 |
---|---|
10.10.56.19 | PostgreSQL master |
10.10.56.18 | PostgreSQL slave |
10.10.56.87 | VIP |
10.10.56.19 | keepalived master |
10.10.56.18 | keepalived slave |
背景
通过keepalive 来实现 PostgreSQL 数据库的主从自动切换,以达到高
可用,当主节点宕机时,从节点可自动切换为主节点,继续对外提供服务,
同时为了保证 keepalived 不会出现单点故障,所以keepalived 也搭建
主备节点,防止单点故障。
架构图
搭建环境
搭建PostgreSQL 主备异步流环境此处略
请确保 19服务器和18服务器时间同步
keepalived 下载
keepalived-1.2.12-3.1.12.x86_64.rpm
- 安装keepalived
rpm -ivh keepalived-1.2.12-3.1.12.x86_64.rpm
- 查看安装的
keepalived 文件位置
postgres@CLW-DB4:~/pgsoft/HA> whereis keepalived
keepalived: /usr/sbin/keepalived /etc/keepalived /usr/share/man/man8/keepalived.8.gz
postgres@CLW-DB4:~/pgsoft/HA>
- 配置
keepalived.conf
CLW-DB3:/etc/keepalived # vim keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
976124272@qq
}
smtp_server 10.10.56.19
smtp_connect_timeout 30
router_id pg19
}
vrrp_script check_pg_alived {
script "/etc/keepalived/scripts/check_pg.sh"
interval 5
fall 3 # require 3 failures for KO
}
virtual_server 10.10.56.87 5432 {
delay_loop 6 # 每个6秒查询Realserver状态
lb_algo rr # lvs算法
lb_kind DR # Direct Route
persistence_timeout 0 # 同一IP链接60秒内被分配到同一台realserver
protocol TCP #用tcp协议检查realserver状态
real_server 10.10.56.18 5432{
weight 100
TCP_CHECK {
connect_timeout 5 #10秒钟无响应超时
nb_get_retry 3
delay_before_retry 3
connect_port 5432
}
}
real_server 10.10.56.19 5432{
weight 100
TCP_CHECK {
connect_timeout 5 #10秒钟无响应超时
nb_get_retry 3
delay_before_retry 3
connect_port 5432
}
}
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 80
nopreempt
advert_int 1
authentication {
auth_type PASS
auth_pass abcdefgh
}
track_script {
check_pg_alived
}
virtual_ipaddress {
10.10.56.87
}
smtp_alert
notify_master "/etc/keepalived/scripts/failover.sh"
notify_fault "/etc/keepalived/scripts/fault.sh"
}
- 对主从PG 进行状态监控,监控脚本
check_pg.sh
,且分配755
执行权限
CLW-DB3:/etc/keepalived/scripts # vim check_pg.sh
#!/bin/bash
export PGDATABASE=ha
export PGPORT=5432
export PGUSER=postgres
export PGHOME=/opt/pgsql-10/bin
export PATH=$PATH:$PGHOME
export PGMIP=127.0.0.1
LOGFILE=/etc/keepalived/log/pg_status.log
SQL2='update sr_delay set sr_date = now() where id =1;'
#pg_port_status=`lsof -i :$PGPORT | grep LISTEN | wc -l`
#pg_port_status=`ps -ef | grep LISTEN | wc -l`
SQL1='SELECT pg_is_in_recovery from pg_is_in_recovery();'
SQL3='SELECT 1;'
db_role=`echo $SQL1 | $PGHOME/psql -d $PGDATABASE -U $PGUSER -At -w`
#if [ $pg_port_status -lt 1 ];then
# echo -e `date +"%F %T"` "Error: The postgreSQL is not running,please check the postgreSQL server status!" >> $LOGFILE
# exit 1
#fi
if [ $db_role == 't' ];then
echo -e `date +"%F %T"` "Attention1:the current database is standby DB!" >> $LOGFILE
exit 0
fi
# 备库不检查存活,主库更新状态
echo $SQL3 | psql -p $PGPORT -d $PGDATABASE -U $PGUSER -At -w
if [ $? -eq 0 ] ;then
echo $SQL2 | psql -p $PGPORT -d $PGDATABASE -U $PGUSER -At -w
echo -e `date +"%F %T"` "Success: update the master sr_delay successed!" >> $LOGFILE
exit 0
else
echo -e `date +"%F %T"` "Error:Is the server is running?" >> $LOGFILE
exit 1
fi
- 当主库挂掉后,切换脚本
failover.sh
,且分配755
执行权限
CLW-DB3:/etc/keepalived/scripts # vim failover.sh
#!/bin/bash
export PGPORT=5432
export PGUSER=postgres
export PG_OS_USER=postgres
export PGDBNAME=ha
export LANG=zh_CN.UTF-8
export PGPATH=/opt/pgsql-10/bin
export PATH=$PATH:$PGPATH
export PGMIP=127.0.0.1
LOGFILE=/etc/keepalived/log/failover.log
# 主备数据库同步时延,单位为秒
sr_allowed_delay_time=10000
SQL1='select pg_is_in_recovery from pg_is_in_recovery();'
#SQL2="select sr_date as delay_time from sr_delay where now()-sr_date < interval \' $sr_allowed_delay_time \';"
SQL2="select sr_date as delay_time from sr_delay where now()-sr_date < interval '100';"
db_role=`echo $SQL1 | psql -At -p $PGPORT -U $PGUSER -d $PGDBNAME -w`
db_sr_delaytime=`echo $SQL2 | psql -p $PGPORT -d $PGDBNAME -U $PGUSER -At -w`
SWITCH_COMMAND='pg_ctl promote -D /pgdata/ha/slave19data'
#SWITCH_COMMAND='touch /pgdata/ha/slavedata/trigger_file.bak'
# 如果为备库,且延迟大于指定时间则切换为主库
if [ $db_role == f ];then
echo -e `date +"%F %T"` "Attention:The current postgreSQL DB is master database,cannot switched!" >> $LOGFILE
exit 0
fi
if [ $db_sr_delaytime -gt 0 ];then
echo -e `date +"%F %T"` "Attention:The current master database is health,the standby DB cannot switched!" >> $LOGFILE
exit 0
fi
if [ !$db_sr_delaytime ];then
echo -e `date +"%F %T"` "Attention:The current database is statndby,ready to switch master database!" >> $LOGFILE
su - $PG_OS_USER -c "$SWITCH_COMMAND"
elif [ $? eq 0 ];then
echo -e `date +"%F %T"` "success:The current standby database successed to switched the primary PG database !" >> $LOGFILE
exit 0
else
echo -e `date +"%F %T"` "Error: the standby database failed to switch the primary PG database !,pelease checked it!" >> $LOGFILE
exit 1
fi
- keepalived 进入错误状态时执行的脚本
fault.sh
,且分配755
执行权限
CLW-DB3:/etc/keepalived/scripts # vi fault.sh
#!/bin/bash
LOGGFILE=/etc/keepalived/log/pg_db_fault.log
PGPORT=5432
PGMIP=10.10.56.19
echo -e `date +"%F %T"` "Error:Because of the priamry DB happend some unknown problem,So turn off the PostgreSQL Database!" >> $LOGFILE
#PGCOUNT=`ps -ef|grep '/opt/pgsql-10/bin/postgres -D /pgdata/10/data' |wc -l`
#if [ $PGCOUNT -gt 1 ];then
# PGPID="`netstat -anp|grep $PGPORT |awk '{printf $7}'|cut -d/ -f1`"
# kill -9 $PGPID
# echo -e `date +"%F %T"` "Error:Because of the priamry DB happend some unknown problem,So turn off the PostgreSQL Database!" >> $LOGFILE
# exit 1
#fi
PGPID="`netstat -anp|grep $PGPORT |awk '{printf $7}'|cut -d/ -f1`"
service keepalived stop
kill -9 $PGPID
if [ $? eq 0 ];then
echo -e `date +"%F %T"` "Error:Because of the priamry DB happend some unknown problem,So turn off the PostgreSQL Database!" >> $LOGFILE
service keepalived stop
exit 1
fi
19 服务器 keepalived 状态
- 19服务器
启动keepalived
服务器
CLW-DB4:/etc/keepalived # service keepalived start
- 查看19服务器
keepalived 状态
CLW-DB4:/etc/keepalived # service keepalived status
● keepalived.service - LVS and VRRP High Availability Monitor
Loaded: loaded (/usr/lib/systemd/system/keepalived.service; disabled; vendor preset: disabled)
Active: active (running) since Wed 2018-06-13 17:09:57 CST; 5s ago
Process: 18364 ExecStart=/opt/keepalived/sbin/keepalived $KEEPALIVED_OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 18368 (keepalived)
Tasks: 3 (limit: 512)
CGroup: /system.slice/keepalived.service
├─18368 /opt/keepalived/sbin/keepalived -D
├─18369 /opt/keepalived/sbin/keepalived -D
└─18370 /opt/keepalived/sbin/keepalived -D
Jun 13 17:10:02 CLW-DB4 Keepalived_vrrp[18370]: VRRP_Instance(VI_1) Entering MASTER STATE
Jun 13 17:10:02 CLW-DB4 Keepalived_vrrp[18370]: VRRP_Instance(VI_1) setting protocol VIPs.
Jun 13 17:10:02 CLW-DB4 Keepalived_vrrp[18370]: Sending gratuitous ARP on eth0 for 10.10.56.87
Jun 13 17:10:02 CLW-DB4 Keepalived_vrrp[18370]: VRRP_Instance(VI_1) Sending/queueing gratuitous ARPs on eth0 for 10.10.56.87
Jun 13 17:10:02 CLW-DB4 Keepalived_vrrp[18370]: Sending gratuitous ARP on eth0 for 10.10.56.87
Jun 13 17:10:02 CLW-DB4 Keepalived_vrrp[18370]: Sending gratuitous ARP on eth0 for 10.10.56.87
Jun 13 17:10:02 CLW-DB4 Keepalived_vrrp[18370]: Sending gratuitous ARP on eth0 for 10.10.56.87
Jun 13 17:10:02 CLW-DB4 Keepalived_vrrp[18370]: Sending gratuitous ARP on eth0 for 10.10.56.87
Jun 13 17:10:02 CLW-DB4 Keepalived_vrrp[18370]: Opening script file /etc/keepalived/scripts/failover.sh
Jun 13 17:10:02 CLW-DB4 Keepalived_vrrp[18370]: SMTP connection ERROR to [10.10.56.19]:25.
- 日志介绍
`Active: active (running) since Wed 2018-06-13 17:09:57 CST; 5s ago` 表示`keepalived`状态,正在运行
`VRRP_Instance(VI_1) Entering MASTER STATE` 表示 该服务器keepalived 进入主节点
`VRRP_Instance(VI_1) setting protocol VIPs.` 表示设置VIP
`VRRP_Instance(VI_1) Sending/queueing gratuitous ARPs on eth0 for 10.10.56.87` 表示发送arp到etho网卡,检查网卡通信
- 查看19服务器
/var/log/message
系统日志
CLW-DB4:/etc/keepalived # tail -f /var/log/messages
2018-06-13T17:10:02.395427+08:00 CLW-DB4 Keepalived_vrrp[18370]: VRRP_Instance(VI_1) setting protocol VIPs.
2018-06-13T17:10:02.395772+08:00 CLW-DB4 Keepalived_vrrp[18370]: Sending gratuitous ARP on eth0 for 10.10.56.87
2018-06-13T17:10:02.396171+08:00 CLW-DB4 Keepalived_vrrp[18370]: VRRP_Instance(VI_1) Sending/queueing gratuitous ARPs on eth0 for 10.10.56.87
2018-06-13T17:10:02.396528+08:00 CLW-DB4 Keepalived_vrrp[18370]: Sending gratuitous ARP on eth0 for 10.10.56.87
2018-06-13T17:10:02.397578+08:00 CLW-DB4 Keepalived_vrrp[18370]: message repeated 3 times: [ Sending gratuitous ARP on eth0 for 10.10.56.87]
2018-06-13T17:10:02.397920+08:00 CLW-DB4 Keepalived_vrrp[18370]: Opening script file /etc/keepalived/scripts/failover.sh
2018-06-13T17:10:02.398277+08:00 CLW-DB4 Keepalived_vrrp[18370]: SMTP connection ERROR to [10.10.56.19]:25.
2018-06-13T17:10:07.395923+08:00 CLW-DB4 Keepalived_vrrp[18370]: Sending gratuitous ARP on eth0 for 10.10.56.87
2018-06-13T17:10:07.396537+08:00 CLW-DB4 Keepalived_vrrp[18370]: VRRP_Instance(VI_1) Sending/queueing gratuitous ARPs on eth0 for 10.10.56.87
2018-06-13T17:10:07.396935+08:00 CLW-DB4 Keepalived_vrrp[18370]: Sending gratuitous ARP on eth0 for 10.10.56.87
18服务器keepalive 状态
- 18服务器
启动备库keepalived
CLW-DB3:/etc/keepalived # service keepalived start
- 查看 18服务器
keepalived 状态
CLW-DB3:/etc/keepalived # service keepalived status
● keepalived.service - LVS and VRRP High Availability Monitor
Loaded: loaded (/usr/lib/systemd/system/keepalived.service; disabled; vendor preset: disabled)
Active: active (running) since Wed 2018-06-13 17:24:12 CST; 14s ago
Process: 8641 ExecStart=/usr/sbin/keepalived $KEEPALIVED_OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 8645 (keepalived)
Tasks: 3 (limit: 512)
CGroup: /system.slice/keepalived.service
├─8645 /usr/sbin/keepalived -D
├─8646 /usr/sbin/keepalived -D
└─8647 /usr/sbin/keepalived -D
Jun 13 17:24:12 CLW-DB3 Keepalived_vrrp[8647]: check_pg_alived no match, ignoring...
Jun 13 17:24:12 CLW-DB3 Keepalived_vrrp[8647]: Configuration is using : 65634 Bytes
Jun 13 17:24:12 CLW-DB3 Keepalived_vrrp[8647]: Using LinkWatch kernel netlink reflector...
Jun 13 17:24:12 CLW-DB3 Keepalived_vrrp[8647]: VRRP_Instance(VI_1) Entering BACKUP STATE
Jun 13 17:24:12 CLW-DB3 Keepalived_vrrp[8647]: VRRP sockpool: [ifindex(2), proto(112), unicast(0), fd(10,11)]
Jun 13 17:24:12 CLW-DB3 Keepalived_vrrp[8647]: SMTP connection ERROR to [10.10.56.18]:25.
Jun 13 17:24:12 CLW-DB3 Keepalived_healthcheckers[8646]: Using LinkWatch kernel netlink reflector...
Jun 13 17:24:12 CLW-DB3 systemd[1]: Started LVS and VRRP High Availability Monitor.
Jun 13 17:24:12 CLW-DB3 Keepalived_healthcheckers[8646]: Activating healthchecker for service [10.10.56.18]:5432
Jun 13 17:24:12 CLW-DB3 Keepalived_healthcheckers[8646]: Activating healthchecker for service [10.10.56.19]:5432
CLW-DB3:/etc/keepalived #
- 查看18 服务器
/var/log/message
系统日志
CLW-DB3:/etc/keepalived # tail -f /var/log/messages
2018-06-13T17:24:12.215646+08:00 CLW-DB3 Keepalived_vrrp[8647]: check_pg_alived no match, ignoring...
2018-06-13T17:24:12.215948+08:00 CLW-DB3 Keepalived_vrrp[8647]: Configuration is using : 65634 Bytes
2018-06-13T17:24:12.216238+08:00 CLW-DB3 Keepalived_vrrp[8647]: Using LinkWatch kernel netlink reflector...
2018-06-13T17:24:12.216527+08:00 CLW-DB3 Keepalived_vrrp[8647]: VRRP_Instance(VI_1) Entering BACKUP STATE
2018-06-13T17:24:12.216830+08:00 CLW-DB3 Keepalived_vrrp[8647]: VRRP sockpool: [ifindex(2), proto(112), unicast(0), fd(10,11)]
2018-06-13T17:24:12.217139+08:00 CLW-DB3 Keepalived_vrrp[8647]: SMTP connection ERROR to [10.10.56.18]:25.
2018-06-13T17:24:12.217451+08:00 CLW-DB3 Keepalived_healthcheckers[8646]: Using LinkWatch kernel netlink reflector...
2018-06-13T17:24:12.217779+08:00 CLW-DB3 systemd[1]: Started LVS and VRRP High Availability Monitor.
2018-06-13T17:24:12.218153+08:00 CLW-DB3 Keepalived_healthcheckers[8646]: Activating healthchecker for service [10.10.56.18]:5432
2018-06-13T17:24:12.218468+08:00 CLW-DB3 Keepalived_healthcheckers[8646]: Activating healthchecker for service [10.10.56.19]:5432
此时19 keepalived 为主,18 keepalived
- 日志分析
`VRRP_Instance(VI_1) Entering BACKUP STATE` 表示该服务器keepalived 进入备节点
`Activating healthchecker for service [10.10.56.18]:5432` 表示激活对18服务器 5432端口健康检查监控
`Activating healthchecker for service [10.10.56.19]:5432` 表示激活对19服务器 5432端口健康检查监控
查看 VIP 绑定
- 查看19服务器
IP地址
CLW-DB4:/etc/keepalived/scripts # ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether fa:16:3e:19:a7:a8 brd ff:ff:ff:ff:ff:ff
inet 10.10.56.19/24 brd 10.10.56.255 scope global eth0
valid_lft forever preferred_lft forever
inet 10.10.56.87/32 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::f816:3eff:fe19:a7a8/64 scope link
valid_lft forever preferred_lft forever
CLW-DB4:/etc/keepalived/scripts #
- 查看18 服务器
ip 地址
CLW-DB3:/etc/keepalived # ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether fa:16:3e:8b:7c:28 brd ff:ff:ff:ff:ff:ff
inet 10.10.56.18/24 brd 10.10.56.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::f816:3eff:fe8b:7c28/64 scope link
valid_lft forever preferred_lft forever
CLW-DB3:/etc/keepalived #
发现此时 VIP 10.10.56.87
绑定在 19主库
查看数据库角色
- 查看19 master
PostgreSQL数据库角色
,f
表示为主库
ha=# select * from pg_is_in_recovery();
pg_is_in_recovery
-------------------
f
(1 row)
ha=#
- 查看18 slave
PostgreSQL数据库角色
,t
表示为备库
ha=# select * from pg_is_in_recovery();
pg_is_in_recovery
-------------------
t
(1 row)
ha=#
- 查看19服务器的
流复制信息
ha=# select pid ,usename,application_name,client_addr,client_port,state,sync_priority ,sync_state from pg_stat_replication;
pid | usename | application_name | client_addr | client_port | state | sync_priority | sync_state
-------+---------+------------------+-------------+-------------+-----------+---------------+------------
18002 | repl | slave1 | 10.10.56.18 | 60568 | streaming | 0 | async
(1 row)
ha=#
发现服务器 19为master
,服务器 18为slave
数据库之间为异步流复制
- 查看 19服务器中
sr_delay
表中sr_date
字段的状态,该更新时间间隔为keepalived的健康检查时间
ha=# select * from sr_delay ;
id | sr_date
----+----------------------------
1 | 2018-06-13 17:20:12.891595
(1 row)
ha=# select * from sr_delay ;
id | sr_date
----+----------------------------
1 | 2018-06-13 17:20:17.891332
(1 row)
ha=# select * from sr_delay ;
id | sr_date
----+----------------------------
1 | 2018-06-13 17:20:22.893416
(1 row)
ha=#
- 查看18 服务器中
sr_delay
表字段sr_date
是否也同时变化
ha=# select * from sr_delay ;
id | sr_date
----+----------------------------
1 | 2018-06-13 17:20:37.895103
(1 row)
ha=# select * from sr_delay ;
id | sr_date
----+----------------------------
1 | 2018-06-13 17:20:42.896588
(1 row)
ha=# select * from sr_delay ;
id | sr_date
----+----------------------------
1 | 2018-06-13 17:20:47.897596
(1 row)
ha=#
通过上 sr_date
字段变化,可知此时keepalived 健康检查正常,每隔5s检查一次,更新该 sr_delay
字段
自动切换测试
停止
19服务器PostgreSQL 主库
postgres@CLW-DB4:~> pg_ctl -D /pgdata/10/data/ stop
waiting for server to shut down..... done
server stopped
postgres@CLW-DB4:~>
- 查看18服务器
postgreSQL数据库状态
ha=# select * from pg_is_in_recovery();
pg_is_in_recovery
-------------------
f
(1 row)
ha=#
f
表示该数据库为主库
- 查看18服务器提升后的主库
sr_delay
字段
ha=# select * from sr_delay;
id | sr_date
----+----------------------------
1 | 2018-06-13 18:04:41.286085
(1 row)
ha=# select * from sr_delay;
id | sr_date
----+----------------------------
1 | 2018-06-13 18:04:41.286085
(1 row)
ha=#
- 查看18
keepalived 状态
CLW-DB3:/etc/keepalived/scripts # service keepalived status
● keepalived.service - LVS and VRRP High Availability Monitor
Loaded: loaded (/usr/lib/systemd/system/keepalived.service; disabled; vendor preset: disabled)
Active: active (running) since Wed 2018-06-13 17:24:12 CST; 24min ago
Process: 8641 ExecStart=/usr/sbin/keepalived $KEEPALIVED_OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 8645 (keepalived)
Tasks: 3 (limit: 512)
CGroup: /system.slice/keepalived.service
├─8645 /usr/sbin/keepalived -D
├─8646 /usr/sbin/keepalived -D
└─8647 /usr/sbin/keepalived -D
Jun 13 17:48:31 CLW-DB3 Keepalived_healthcheckers[8646]: Removing service [10.10.56.19]:5432 from VS [10.10.56.87]:5432
Jun 13 17:48:31 CLW-DB3 Keepalived_healthcheckers[8646]: SMTP connection ERROR to [10.10.56.18]:25.
Jun 13 17:48:39 CLW-DB3 Keepalived_vrrp[8647]: VRRP_Instance(VI_1) Transition to MASTER STATE
Jun 13 17:48:40 CLW-DB3 Keepalived_vrrp[8647]: VRRP_Instance(VI_1) Entering MASTER STATE
Jun 13 17:48:40 CLW-DB3 Keepalived_vrrp[8647]: VRRP_Instance(VI_1) setting protocol VIPs.
Jun 13 17:48:40 CLW-DB3 Keepalived_vrrp[8647]: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth0 for 10.10.56.87
Jun 13 17:48:40 CLW-DB3 Keepalived_vrrp[8647]: Opening script file /etc/keepalived/scripts/failover.sh
Jun 13 17:48:40 CLW-DB3 Keepalived_healthcheckers[8646]: Netlink reflector reports IP 10.10.56.87 added
Jun 13 17:48:40 CLW-DB3 Keepalived_vrrp[8647]: SMTP connection ERROR to [10.10.56.18]:25.
Jun 13 17:48:45 CLW-DB3 Keepalived_vrrp[8647]: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth0 for 10.10.56.87
CLW-DB3:/etc/keepalived/scripts #
- 日志参数介绍
`VRRP_Instance(VI_1) Entering MASTER STATE` 表示此时18服务器 keepalived 进入master 状态,
` VRRP_Instance(VI_1) setting protocol VIPs` 给网卡绑定 `VIP`
- 查看 18 服务器
IP地址
CLW-DB3:/etc/keepalived # ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether fa:16:3e:8b:7c:28 brd ff:ff:ff:ff:ff:ff
inet 10.10.56.18/24 brd 10.10.56.255 scope global eth0
valid_lft forever preferred_lft forever
inet 10.10.56.87/32 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::f816:3eff:fe8b:7c28/64 scope link
valid_lft forever preferred_lft forever
CLW-DB3:/etc/keepalived #
发现此时 VIP
绑定在18服务器网卡上
测试结果
:当19服务器主库宕机后,通过keepalive ,18服务器备库自动切换为主库,VIP绑定在该服务器,并可继续对外提供服务,从而实现
高可用。
本文标签: 主从Keepalivedpostgresql
版权声明:本文标题:使用 keepalived 实现 PostgreSQL主从异步流复制的高可用 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1730076272a1221814.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论