专栏首页AustinDatabases谁说Postgresql 没有靠谱的高可用

谁说Postgresql 没有靠谱的高可用

接上期(如果你刚开始看的话,那估计可能会丈二和尚,建议还是从1 开始看)

上期说到了见证服务器,见证服务器的功能到底有什么用,其实如同各种高可用中(这里说的是完备的高可用)大部分都是三台,因为怕什么,怕脑裂,因为高可用要面对的问题是很多的,尤其网络的问题,如果因为网络的原因造成服务器本身没有问题,但在网络断开的某个时间段造成了,主从切换,则就会造成双主的尴尬现象。所以在数据中心或比较关键的业务中,使用的数据库服务器的高可用也是要妥妥当当的。wintness不是一个成熟的备用节点,也没有集成到复制中,但是在决定哪个网络段占多数时,它有效地代表了“投票”。可以使用repmgr见证寄存器设置见证服务器。但前提是你必须使用repmgrd ,每个节点都需要运行这个程序(如果你不知道什么是repmgrd 请参看之前的文字 1 2 3 )

今天主要要说的就是见证服务器,repmgr witness, handling network splits with repmgrd.

首先我们要搭建一台和前边两台没有任何关系的postgresql 的数据库。并且安装repmgr 也是和前面一样,(如果不知道怎么做,就看前边的内容,这里不再重复)

所以,到目前为止,你应该有一个 postgresql 的集群,两台机器,并且现在你又安装了一台postgresql 并且也安装了 repmgr,相关的配置也和之前是一样的。

repmgr见证寄存器将见证服务器的节点记录添加到repmgr元数据中,并在必要时通过安装repmgr扩展并将repmgr元数据复制到见证服务器来初始化见证节点。需要执行此命令才能使用repmgrd的见证服务器。 在执行repmgr见证寄存器时,还必须提供集群主服务器的数据库连接信息。

在witeness 的机器上执行下面的命令

repmgr -f /etc/repmgr.conf witness register -h 192.168.198.22 -U repmgr -d repmgr --verbose

执行命令后就将 witeness 主机加入到集群中,执行完这条命令后,下图应该在所有的节点都应该看到,因为witness主机已经加入到 repmgr的metadata 中。

下面我们开始做测试,我们将主节点关闭

我们在看 witeness 节点的日志

最后 witness 节点虽然是postgresql 的数据库,但如果仅仅作为见证服务器,则可以不需要配置那么高,如同mongodb 的abiter 服务器。

到这里上一期的问题,还差一个没有回答,到底IP 怎么能切换?

本文分享自微信公众号 - AustinDatabases(AustinDatabases)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-12-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ESP8266 LUA脚本语言开发: 准备工作-LUA开发是怎么来的

    https://www.cnblogs.com/yangfengwu/p/9315841.html    点击查看

    杨奉武
  • 配置nginx.conf实现负载均衡

    http   {            include       mime.types;            default_type  applicati...

    似水的流年
  • ESP8266 AT指令开发(基于STC89C52单片机): 硬件使用说明

      1.如果自己的电脑没有安装CH340(串口模块)驱动,请先安装CH340(串口模块)驱动程序

    杨奉武
  • 基于Django的电子商务网站开发(连载31)

    (2)修改一个当前登录用户已经存在的地址信息,系统应该报“这个地址已经存在!”的错误信息。

    小老鼠
  • 基于Django的电子商务网站开发(连载13)

    小老鼠
  • 基于Django的电子商务网站开发(连载19)

    表3-3为修改用户密码测试用例,在这里我们假设旧密码为“000000”,新密码为“123456”,设计4个测试用例,分别为。

    小老鼠
  • 树莓派与arduino通信

    (2)安装python的GPIO模块,用于控制LED、电机等: wget https://sourceforge.NET/projects/raspberry-...

    似水的流年
  • 基于Django的电子商务网站开发(连载33)

    顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscr...

    小老鼠
  • SWA2G422&485JK2G基础篇: STM32+W5500实现MQTT通信控制,485/422透传通信

        如果使用域名连接,则会经过DHCP->DNS->TCP连接->MQTT连接通信

    杨奉武
  • 环境监控场景的 IoT 物联网开发实战

    MQTT(消息队列遥测传输) 是基于 TCP/IP 协议栈而构建的支持在各方之间异步通信的消息协议。MQTT 在空间和时间上将消息发送者与接收者分离,因此可以在...

    用户1737318

扫码关注云+社区

领取腾讯云代金券