postgresql中如何使用keepalived的方式进行IP的切换

本篇文章为大家展示了postgresql 中如何使用keepalived的方式进行IP的切换,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

成都创新互联是一家专业提供景县企业网站建设,专注与成都网站设计、成都做网站、html5、小程序制作等业务。10年已为景县众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。

关于IP 切换的方法,有不少,但还是愿意从简单的方式来,这里高可用涉及的问题有两个 1 主机的关闭  2 PostgreSQL 服务DOWN  ,至于怪异的一些例如PG 服务在,但无响应,这样的问题,不在考虑的范围内。

以下的方案仅仅适合双机方案(如果是三台机器,也可以仿照MHA 中priority,调整其中一台不参加切换)

这里使用的是keepalived的方式进行IP 的切换,之前几期是有包含repmgrd 自动切换从到主的方式,所以剩下的就是IP的切换问题。原因俩字,方便。

keepalived 的安装和配置这里就不讲了,主要的原理画一个图

postgresql 中如何使用keepalived的方式进行IP的切换

就是主和从进行切换,而这里的witness可以不要,主要还是看需求(如果不知道,可以看前几期)。废话少说,以下几点是需要注意的

1 POSTGRESQL.CONF  监听地址要怎么设

2 当主机失败后,又启动了,怎么办的问题

问题 1 当然listen 要设置成 0.0.0.0 而不是本机的IP 了

问题 2 当然不能失败的主机启动后就抢回VIP,那正常工作的新主怎么办,更可怕的是那数据的一致性这个问题就要出问题,这可是不能马虎的,否则离,被离职就不远了。

处理这个问题就需要 keepalived 要设置 nopreempt 防止失败的主,再次启动后,抢占VIP,另外两个KEEPALIVED.conf中都要设置成 backup的状态,通过priority 来判断当前那个是主,另外priority 之间的差距不要设置的太大,否则你就可能会等待一段时间才能VIP 切换,当然很可能由于VIP 切换过快,导致 regmgr 还未将从库promote ,程序可能会报错,但这总比下面的情况要好,例如主库失败,又重启了,但你的promote 已经做完,这时如果VIP 没有切换,则数据就会出现不一致,所以VIP 切换还是快点好,哪怕promote 没有做完。

下面是一些KEEPALIVED 的配置

postgresql 中如何使用keepalived的方式进行IP的切换

下面我们就做一下,看看这样灵不灵

1 目前有 21  22 两台机器 ,VIP 23

目前主库是在22上,关掉22的POSTGRESQL 的服务,等待REPMGRD 切换主从,于此同时通过KEEPALIVED来检测 PG的服务,然后进行切换IP 的工作。

1  正常状态 21 从库

postgresql 中如何使用keepalived的方式进行IP的切换

2 关闭 22 ,22 已经无法连接

postgresql 中如何使用keepalived的方式进行IP的切换

3 查看当前的主从是否已经切换,IP是否切换了

postgresql 中如何使用keepalived的方式进行IP的切换

已经切换了,主从,21变为了主库,IP 也在后面进行了切换。

这样做的优点,

搭建简单,部署方便,可以应付大面积的高可用需求。

这样做的缺点

部分地方做的不严谨,需要进行调试和掌握相关的技巧。

上述内容就是postgresql 中如何使用keepalived的方式进行IP的切换,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。


文章标题:postgresql中如何使用keepalived的方式进行IP的切换
分享网址:http://hbruida.cn/article/pdgpjo.html