千家信息网

PostgreSQL 高可用Patroni和学习方法是什么

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇文章为大家展示了PostgreSQL 高可用Patroni和学习方法是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。最近一段时间在学习 POSTGRE
千家信息网最后更新 2026年11月03日PostgreSQL 高可用Patroni和学习方法是什么

本篇文章为大家展示了PostgreSQL 高可用Patroni和学习方法是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

最近一段时间在学习 POSTGRESQL 的高可用,相关的方法很多,但是坑也很多,在PGPOOL-II上摔不了少跤,同时在学习期间发现一个问题就是,很多时候学习知识并没有求慎解,并且网上很多帖子都是安装完毕就OK 了,如果你安装去做的话,其实很多时候是安装不成功或问题无法解决。

本着换一种方式学习的,不浪费时间在一些应该知道,但从网上划拉帖子就做,然后一头雾水的学习方法,改换为,踏踏实实的来做一次相关的知识的梳理和层次化的学习。

本次学习的是 postgresql 的高可用方式 Patroni

Patroni 本身并不是一个软件,而是一个模板通过python来构建一个高可用的postgresql的解决方案。软件本身可以通过其他的分布式软件来进行支持( zookeeper, etcd 等),同时根据你选择的不同的模块来安装patroni.

Patroni 本身使用的数据同步方式是postgresql的流复制方式,默认的情况我们还是使用异步的方式,在Patroni 中会有一个参数,

Maximum_lag_on_failover ,通过设置,保证从库在与主库超过一定数据不同步的情况下,不会发生相关的主从转移。

在patroni 的设置中,有三种方式,1 动态设置, 2 本地设置 3 环境设置,其中有一些设置在主库和从库之间必须保持一致,这些值在本地中的配置文件是不生效的。

以下值必须在动态设置中保存并设置

max_connections:

max_locks_per_transaction:

max_worker_processes:

max_prepared_transactions

wal_level:hot_standby

wal_log_hints: on

track_commit_timestamp: off

并且还有一些值也是需要大致相同的,主要原因是主从可能发生切换,而如果在切换后,新主的机器不能调整好自身的状态,则会影响正常的数据库使用。

max_wal_sender

max_replicaiton_slots:

wal_keep_segments:

同时,

listen_address

port

cluster_name

host_standby

等参数是通过动态的方式传递给 pt_ctl (pt_ctl 是patroni的启动程序)

并且这些参数的传递要高于 alter system 的设置。

具体,patroni 是怎么做的,又是怎么样的次序来进行配置的读取

1 节点首先检查 是否有 postgresql.base.conf (一般默认在安装后的postgresql 的数据目录)或者设置了 custom_conf

2 如果custom_conf 设置了相同的参数,则以custom_conf 为主,其他的配置将被忽略

3 如果custom_conf 没有设置,则以postgresql.base.conf为主,如果还不存在,则将postgresql.conf 变更为postgresql.base.conf

4 动态的选择项,将可以不使用重新读取的方式生效,而是编写应用后就生效。

总结:参数文件被应用的顺序

1 postgresql.base.conf

2 postgresql.conf

3 postgresql.auto.conf

4 run-time parameter

而动态的文件中的修改,DCS的配置改变都会将相关的配置保存在 patroni.dynamic的磁盘文件中。

而Patroni 使用的是 YAML的方式来进行配置的,所以这也就要求,配置文件的严谨性,例如多一个空格,少一个缩进,都是不可以的。

配置文件的项目很多,这里值关心 global 和 etcd的配置

1 Global 设置

name 集群名集群内的机器必须唯一,每台机器有自己的名字

namespace 存储配置信息的区域路径(请保持默认)

scope 集群的名字

2 log 的配置

level 设置日志的等级

format 设置日志的等级 默认的设置是 asctime levelname message

dateformat 设置时间格式

dir 要写入程序日志的目录,目录必须存在并且是patroni 用户编写并且可以由您设置此值。应用程序将默认保留4个25MB 的日志。

file_num 要保留的日志的数量

file_size patroni.log的尺寸

loggers: 定义允许日志等级

引导配置:

DCS: 在集群的全局配置,更改参数需要在 DCS 中或听过API 进行更改。

loop_wait 循环休眠的描述 默认 10秒

ttl: TTL获取先导锁。可以将其视为启动自动故障转移过程之前的时间长度。默认值:30

retry_timeout: 分布式程序和POSTGRESQL 之间的失联后多长时间不触发切换。

maximum_lag_on_failover:从库和主库之间在可以能进行主从切换中运行的字节差距。

master_start_timeout 主库在故障转移中的时间容忍度,loop_wait + master_start_timeout+loop_wait

synchronous_mode 打开这个模式将选择与主库最接近的从库作为可的新主库

synchronous_mode_strict :打开这个模式将如果发现没有和主库进行数据复制的从库,则主库将禁止写入数据。

上述内容就是PostgreSQL 高可用Patroni和学习方法是什么,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

配置 学习 方式 参数 数据 文件 日志 时间 动态 方法 知识 程序 集群 切换 学习方法 主从 之间 同时 机器 目录 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技工作委员会毛军 互联网科技保险 互联网科技战争 互联网 科技创新 万易互联网科技有限公司 致骋互联网科技 睿民互联网科技 时间互联网络科技 无锡溥仪互联网科技有限公司 博兴的互联网电子科技公司 西藏七维空间互联网科技有限公司 随着互联网科技发展 彤创互联网科技有限公司 中国互联网十大科技股排名 广东工业互联网大赛深圳学泰科技 张召忠谈中国互联网科技 上海同邻互联网科技有限公司规模 互联网科技机房 亚光科技低轨卫星互联网 杭州科技互联网公司有哪些 云南咖啡 互联网科技公司经营范围 深圳恒合互联网络科技有限公司 融势互联网科技 菲比寻常互联网科技 成都玖崟互联网科技有限公司乐商圈怎么样 工业互联网等科技实现智能化赋能 山东星卡互联网科技有限公司官网 风投北京互联网科技 株洲百竞科技的互联网营销顾问
0