PostgreSQL 来自欧罗巴Patroni ETCD DOWN OR PostgreSQL DOWN 记录 6

What's your worst habit ?  Some times , the worst habit is procrastination, the best habit I always always come through and get job done.

已经写到系列的6 ,实际上到目前为止我们才刚刚进入到patroni的实际操作,如同上面的话,我最大的坏习惯可能是有时会有拖延症,反过来我的好习惯是有始有终。

首先我们先启动已经安装好的patroni的系统三台机器

192.168.198.66

192.168.198.67

192.168.198.68

etcd 和  patroni 以及postgresql ,写一个简单的判断的展示的shell ,如果有关闭的和不正常的情况下,会有提示

1  当postgresql  leader 主机的etcd  DOWN掉会怎么样

1  patroni 会反应到当前的ETCD leader 已经down掉,报错尝试在192.168.198.66 上去写数据,但是无法写入,报错信息在上边,后续会很快的开始raft协议,进行ETCD本身的切换,将ETCD的写节点切换到 192.168.198.68 上

结果一个任意节点的ETCD DOWN 掉不会影响POSTGRESQL 高可用的稳定性。

2    停止掉2个ETCD 一定是不行的,这和RAFT协议中的大多数原理有关我们验证一下

当只剩一个etcd的情况下,patroni  无法通过etcd来判断哪个是当前运作的主库,并且也无法在系统出现问题的情况下进行任何的切换,所以ETCD 必须是多节点,必须是3个节点及以上的基数节点。

再次重新启动2个ETCD ,系统恢复正常。

3  停止patroni 在主节点的服务。

首先我们找到当前的主节点,当然也可以用patroni的命令,这里没有使用

当我们定位到集群中的主节点后,我们停止这个主节点的patroni的服务

在停止主节点的patroni的服务的一刻, 系统开始进行了切换,马上选出了新的主节点,并将主节点转移到了另一个standby节点,后续另一个从节点也更改了复制的节点,连接到了新的节点上。

4  停止两个patroni 的服务

整个的系统出现问题,剩下的一个正常工作的patroni 系统报下图的信息

其他两个节点在重新启动了patroni后,也报类似的错误,整个集群的复制被终止,

同时发现两个关闭partoni的数据库已经进入了 single 模式

并且可以确认的是,正常的复制已经不存在,需要重新做相关的复制并重新启动整体的服务

5  停止postgresql 主库数据库服务

在停止主库的第一时间,其他两个从库均开始有反应,与主库无法相连,并开始报告相关的信息,而在关闭postgresql 主库的服务后,马上patroni将PG主库的服务又来了,短暂的时间其他服务器判断后,恢复了和主库的连接。

所以人为的关闭主服务器数据库服务,是不会对集群产生巨大的影响的

6 关闭主数据库服务器

这次是整体关闭服务器的主机

在关闭主数据库服务器后, 其中一台从库被选举为主库,同时另一台服务器连接到这台主库。

当再次将已经关闭的数据库服务器主机启动后, 

系统开始尝试进行pg_rewind 操作,恢复数据库,并且在恢复后,开始讲这个数据库和新的主库进行重新复制关系的建立

经过上述的几个尝试,我们做了如下操作

1 ETCD DOWN 掉后 1 个后,不会出现任何问题, DOWN掉2个后,不在符合RAFT 协议,则系统集群的故障处理不能正常, 在启动ETCD后,整体系统恢复,在此期间,数据库服务不会受到影响

2 停止patroni 服务,在主节点的服务后,故障转换开始,所以patroni的服务的启动时必须的,要保证其服务运行,否则主节的patroni 无法工作就会进行故障切换,当停止两个patroni 的服务,整体集群出现故障,无法在进行工作,数据库进入单用户模式。

3 停止主数据库服务,patroni 会自动将数据库服务拉起来,如果直接停止主服务的服务器,则进行切换,在主服务器启动后,启动数据库服务,ETCD,patroni 后, 开始对失效的patroni 的曾经的主库进行 pg_rewind 并且将这个节点再次加入到集群,作为从库。

整体来说,patroni 作为分布式协议方式的postgresql的高可用方式,的确是靠谱的。

当然这还远远没有结束,我们还需要对原理, 以及一些更深入的操作进行研究和理解

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值