暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

课程笔记 | PostgreSQL高可用架构部署与管理 | 第1章 etcd+patroni+PostgreSQL高可用架构部署与管理 - 2/2

原创 严少安 2022-08-29
853

上文学习到了 1.9,本文为 1.10 ~ 1.15 小节的课程笔记。

etcd 配置

etcd是一种高度一致的分布式键值存储,建议部署三台机器,即三个节点,避免脑裂。

etcd 是 CNCF 开源项目,源码地址为:https://github.com/etcd-io/etcd/

三个节点的配置文件略有不同,主要体现在 name 和监听 ip 地址,需要依据当前节点的 ip 进行微调。

具体区别如下:

# node1
ETCD_NAME="etcd01"
ETCD_LISTEN_PEER_URLS="http://192.168.56.101:2380"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.56.101:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.56.101:2379"

# node2
ETCD_NAME="etcd02"
ETCD_LISTEN_PEER_URLS="http://192.168.56.102:2380"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.56.102:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.56.102:2379"

# node3
ETCD_NAME="etcd03"
ETCD_LISTEN_PEER_URLS="http://192.168.56.103:2380"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.56.103:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.56.103:2379"

参数的释义为:

  • ETCD_NAME :ETCD的节点名
  • ETCD_LISTEN_PEER_URLS :该节点与其他节点通信时所监听的地址列表,多个地址使用逗号隔开,其格式可以划分为scheme://IP:PORT,这里的scheme可以是http、https
  • ETCD_INITIAL_ADVERTISE_PEER_URLS :该成员节点在整个集群中的通信地址列表,这个地址用来传输集群数据的地址。因此这个地址必须是可以连接集群中所有的成员的。
  • ETCD_ADVERTISE_CLIENT_URLS :广播给集群中其他成员自己的客户端地址列表

Patroni 的部署

Patroni是一个模板,你可以使用Python创建你自己定制的高可用性解决方案,为了最大限度的访问,还可以创建一个分布式配置存储,比如ZooKeeper、etcd、Consul或Kubernetes。 希望在数据中心或其他地方快速部署HA PostgreSQL的数据库工程师、dba、DevOps工程师和SREs会发现它很有用。

我们称Patroni为“模板”,因为它远不是一个通用的或即插即用的复制系统。 它也有自己的警告。 明智地使用。 用PostgreSQL运行高可用性有很多方法; 查看PostgreSQL文档。

目前支持的PostgreSQL版本:9.3到14。

具体配置步骤此处略。

Patroni 常用命令:

  1. 查看集群状态
su - postgres
# 高可用集群状态查看
patronictl -c /pg/patroni/pg.yml list
  1. 主备切换
patronictl -c /pg/patroni/pg.yml switchover
  1. 通过VIP访问数据库
# 查看主节点网卡ifconfig(或ip addr),检查VIP是否创建
ifconfig

# 使用psql验证该VIP有效性
su - postgres
psql -h 192.168.56.108 -p 5432 -U postgres -d postgres

后记

对于 PostgreSQL 的高可用方案,本课程介绍的只是其中一种,还有业内知名的 2ndQuadrant 公司开源的 Repmgr 组件。

https://repmgr.org/

repmgr is an open-source tool suite for managing replication and failover in a cluster of PostgreSQL servers. It enhances PostgreSQL’s built-in hot-standby capabilities with tools to set up standby servers, monitor replication, and perform administrative tasks such as failover or manual switchover operations.

感兴趣的同学可以自行学习。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论