postgresql 集群_使用Patroni+etcd搭建PostgreSQL集群(一)

PostgreSQL高可用方案

95cae37baa5a7f072abc9617f8059b2c.png

PG原生没有提供高可用程序,但官方文档中提到PG的高可用方案有很多种,有基于共享存储的,数据分片的和流复制技术的等等,完整列表可以参考文档 PostgreSQL Documentation.

73c9d9e64b0f190d32292213bdac5573.png Patroni 介绍 7c7109a7131c61b630b771bedd832287.png

Patroni是一个可以自定义的模板,搭配ZooKeeper,etcd,Consul或Kubernetes等DCS软件,用于快速部署PostgreSQL高可用环境。Patroni本身是用Python语言编写的。

Patroni负责集群环境数据库的启停,节点及实例的状态监控,流复制环境初始化或重建,主备切换等管理性的工作。它还负责将本地数据库的状态信息记录到etcd中。

73c9d9e64b0f190d32292213bdac5573.png Etcd 介绍 7c7109a7131c61b630b771bedd832287.png

etcd是CoreOS团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。etcd内部采用raft协议作为一致性算法,etcd基于Go语言实现。

它的作用与Oracle RAC环境的OCR和VoteDisk有些类似,Patroni负责将本地节点数据库信息记录至etcd, 同时也读取其它数据库节点的信息,这样就获取了其它节点数据库的状态。当主节点不可用时,Etcd负责选举出一个合适的节点作为新的主节点,Patroni再根据选举结果重新配置成员。为了避免脑裂问题,推荐Etcd集群至少为3个节点,本例是一个标准的3节点集群,同步复制状态下最多允许1个节点宕机。

所以采用Patrnoi+Etcd的高可用架构是这样的:

5a707c25638fbe9673ba57912c1eff20.png

本文实验环境:

3 virtual machine

os version: CentOS Linux release 7.8.2003 (Core)

pg version: 11.8

etcd Version: 3.3.11

patroni 1.6.5

Patroni网址:https://patroni.readthedocs.io/

etcd网址:https://etcd.io/

主机规划:

Hostname IP Address Software Init Role
bighouse1 10.0.2.21 PostgreSQL,Patroni,Etcd Master
bighouse2 10.0.2.22 PostgreSQL,Patroni,Etcd Standby1
bighouse3 10.0.2.23 PostgreSQL,Patroni,Etcd
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值