问题标签 [patroni]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
339 浏览

postgresql - Patroni:同步模式与最大延迟

这是 Patroni 的文档https://patroni.readthedocs.io/en/latest/replication_modes.html

有两个选项:maximum_lag_on_failover 和 synchronous_mode。

在项目中,我看到设置了这两个选项(synchronous_mode: true, maximum_lag_on_failover: 1048576)。是否有意义?

一个说你可以将次要提升到主要,延迟为 1048576 字节,其次,如果你有任何延迟,你不能将次要提升到主要。第二个问题 maximum_lag_on_failover 是否仅适用于异步复制,而 synchronous_mode 仅适用于同步复制?

0 投票
1 回答
219 浏览

postgresql - 使用 scram-sha 256 初始化 Patroni 集群

当我尝试安装 Patoni 时,我可以使用 md5 初始化数据库,所有集群都运行良好。.

但是当我尝试通过初始化 scram-sha 256 安装赞助人时。它没有开始也状态保持

集群中所有数据库实例的“副本”。同样在赞助人日志上,我可以看到这个错误 ""postgres" does not have a valid SCRAM verifier" 。解决方案是什么?

信息:password_encryption 是 scram-sha 256 所有 hba.conf 条目都是 scram-sha 256。

0 投票
1 回答
524 浏览

postgresql - Patroni 不会更改 postgresql.conf 中的 wal_level

我将 patroini yaml 文件中的 wal_level 从副本修改为逻辑并运行以下命令。但是,postgresql.conf 中的值没有改变。我错过了什么?

有没有办法改变 DCS 参数?我什至尝试使用alter database,所以我将拥有一个“自动”文件,但这也无济于事。

非常感谢您的帮助

Postgres 由 Patroni 使用以下参数运行:

0 投票
1 回答
456 浏览

postgresql - “滞后于 MB”patoni/postgresql 我该如何解决它?

复制品正在落后。我从哪里开始解决这个问题?我查看了 /var/log/patroni/patroni.log 但没有看到任何奇怪的东西。

postgres2 | 192.168.1.26 | 复制品 | 运行 | 5 | 5298

postgres3 | 192.168.1.27 | 复制品 | 运行 | 5 | 5298

0 投票
1 回答
767 浏览

postgresql - Patroni,Postgres:无法启动 WAL 流:错误:时间线 X 上请求的起点 Y 不在此服务器的历史记录中

我有 3 个节点 Postgres 集群,由赞助人管理,每当我的主节点出现故障并作为副本重新加入时,旧主节点就会面临以下错误:

这是我使用的配置:

已经尝试将所有节点的 WAL 日志存储到共享目录,然后从那里恢复。

但错误仍然相同。

0 投票
0 回答
41 浏览

postgresql - 如何在patoni conf.yml 中隐藏密码

有什么办法可以隐藏patoni conf.yml 文件的密码?我正在使用赞助人 1.6.5。我知道我们有两种选择,一种是使用环境变量,另一种是使用 .pgpass,它并没有真正增加安全级别。我们是否有任何其他选择,以便我们可以使用一些加密密码。

0 投票
0 回答
50 浏览

postgresql - 使用Patroni时如何确定主/副本?

我正在使用 Patroni 构建 PG 集群,我使用 Xinetd 并对 PG 执行如下查询:

我的两个 PG 服务器都返回

但是,在使用 DBeaver 时,两台服务器中的一台处于无法在只读事务中执行创建数据库的状态。

我如何确定它?

0 投票
1 回答
259 浏览

kubernetes - StatefulSet 的 Pod 名称解析不起作用

我有以下带有 StatefulSet 的 Kubernetes YAML,我用它来部署带有 Patroni 的 PostgreSQL 集群。但是,这个问题与 Kubernetes 如何在 CoreDNS 中注册 Pod 名称有关。

根据稳定网络 ID 部分中的此文档,如果我为我的 Pod 创建了一个名为 Headless 的服务spilodemo-svc,我可以使用短主机名 (podname.servicename) 访问它们:

基本上,我的代码在 VirtualBox 和 Vagrant 上使用 kubeadm 部署的 K8s 集群上正常运行了很长时间。今天我想在 IBM Cloud 上部署它,但上面的主机名不起作用,奇怪的是,当我再次在 Vagrant/VirtualBox 上重复测试时,我无法再让它工作了,我不知道为什么。

现在 YAML 部署了 Spilo,它是 Zalando 开发的一个开源项目,它是一个带有 Patroni 和 PostgreSQL 的 Docker 镜像。我的代码来自他们的示例here

基本上,他们创建了一个没有选择器的 ClusterIP 服务(而不是无头服务)。在这些情况下,Kubernetes 不会在其中创建 Endpoint。出于这个原因,我们在 YAML 中有一个与服务名称相同的 Endpoint(这似乎是 Kubernetes 期望的绑定)。

Spilo 的 Python 代码始终使用主节点的 IP 更新此端点。

StatefulSet 的字段 serviceName 等于服务的名称:

而且,根据文档,这保证了 Kubernetes 在 CoreDNS 中为这个短主机名(podname.servicename)创建一个条目:

它工作了很长时间,直到今天,同时没有发生任何事情。老实说spilodemo-0.spilodemo-svc,到目前为止,我还没有完全理解 DNS 名称是如何工作的,因为它使用 ClusterIP 服务而不是 Headless 服务。

另一个奇怪的事情是,Zalando 团队使用了我调用的另一个 Headless 服务,spilodemo-config根据他们代码中的注释,它应该避免 Kubernetes 删除端点,但这对我来说没有多大意义。

但是,今天我也尝试将服务转换为无头服务,spilodemo-config但没有成功。Kubernetes 仅在 CoreDNS 中为服务创建条目:

但不是每个 Pod 的一个:

谁能帮我弄清楚我的 YAML 文件发生了什么,以及如何让上面的三个短主机名在 CoreDNS 中工作?

PS 在 Stackoverflow 上,我发现了这些讨论:

0 投票
0 回答
280 浏览

postgresql - 所有成员都从赞助人集群中消失了

我在赞助人集群中有 2 个成员(1 个主节点和 1 个副本)。在主重新连接到新的 etcd 服务器后,我在日志中看到了问题:

在此副本节点成为主节点后:

正如你在上面看到的,新主人现在看不到赞助人1。经过几次恢复 wal 赞助人 1 在下面写了这些日志:

这些日志信息此时不会更改。赞助人2 写acquired session lock as a leader和赞助人1 写my wal position exceeds maximum replication lagpatronictl -c /patroni.yml list但是当我使用命令时,我在赞助人集群中看不到它们。

我应该如何以更好的方式将它们带回集群?

0 投票
0 回答
30 浏览

postgresql - Patroni 集群切换协助

我正在尝试创建一个将执行赞助人切换的自动 shell 脚本。这将提升 3 节点集群中的领导者,然后重新启动副本。我有一个 curl 命令可以为领导者执行切换。但我不确定如何自动重启其他两个副本?或者将如何构建。请记住,我现在是 Bash 的初学者。任何指导表示赞赏!