问题标签 [repmgr]
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.
clone - 是否可以在不使用“repmgr 备用克隆”和 pg_rewind 的情况下降级主节点
我目前正在使用带有日志传送复制的 postgresql。我使用起搏器的主/从资源来处理 postgresql 故障转移。
我在问是否有办法将主机降级,将其设置为备用并保持同步,而不使用“repmgr 备用克隆”也不使用 pg_rewind。
事实上,我希望旧的 master 能够快速准备好回到 master 状态,而“repmgr standby clone”需要几分钟才能恢复,这太长了。
我看到可以使用 pg_rewind 来更快地同步,但这意味着要启用 wal_log_hints,我担心这个选项会降低 master 的性能。主人已经太忙了。
我尝试只在数据目录中写入 recovery.conf,主机已经很好地转向从机模式,但是它没有上游:
[root@bkm-01 httpd]# su - postgres -c "/usr/pgsql-9.5/bin/repmgr -f /var/lib/pgsql/repmgr/repmgr.conf cluster show"
Role | Name | Upstream | Connection String
----------+--------|----------|--------------------------------------
* master | node-02 | | host=node-02 user=repmgr dbname=repmgr
standby | node-01 | | host=node-01 user=repmgr dbname=repmgr
我希望它足够清楚,我实际上是数据库复制的新手。任何帮助,将不胜感激。
postgresql - 错误无法访问文件“$libdir/repmgr_funcs”没有这样的文件或目录
我按照此链接在 Ubuntu postgresql 服务器上创建主从复制。
我的配置repmgr
和postgresql
是:
Postgresql 9.5-:/opt/PostgreSQL/9.5/
repmgr-:/usr/lib/postgresql/9.5/bin/repmgr
repmgr.conf -:/etc/rep.conf
我收到错误-:无法创建函数
postgresql - 在 pg_basebackup 命令 Postgres 中排除文件的选项
克隆备用数据库时,如何防止 pg_basebackup 将 postgresql.conf 和 pg_hba.conf 从 master 复制到 /var/lib/pgsql/9.9/data 目录?
目前我正在使用这个命令
postgresql - 集群 PostgreSQL 集群
由于 PostgreSQL 人员选择不当的术语,这会让一些人感到困惑,但请多多包涵……
我们需要能够支持多个 PostgreSQL (PG) 集群,并使用例如 repmgr 将它们集群在多个服务器上。例如,支持每个 PG 集群的服务器可用性和 PITR。在很多情况下,每台服务器一个 PG 集群太贵了,所以我们多租户(小)客户在不同的 PG 集群上,用于数据分离、恢复等,但也希望能够通过复制/失败来支持 HA-超过。
PG 集群最接近的类比是 SQL Server 实例——每个实例可以托管多个 DB,有自己的端口等。像 SQL Server 一样,您可以在同一台服务器上运行多个实例(PG 集群),并为每个实例设置复制.
基本的 repmgr 设置没有问题——这在单个 PG 集群模型中似乎相当清楚。但是,对于使用 repmgr 的多个 PG 集群,是否有任何推荐/支持的方法?我可以想象假装 repmgr 认为每个 PG 集群实际上是一个单独的 repmgr 集群(具有单独的 repmgr.conf、连接信息/端口)。但是,我还不确定这会奏效。
我通常希望在同一台服务器上对所有 PG 集群进行故障转移——而不是一次一个。
我认识到这可能不是在所有情况下都是最好的主意,但主要是在探索什么是可能的。我有一些替代方案,但这最接近我们当前的单节点模型。
澄清一下,我需要在许多服务器集群中支持成千上万的客户。理想情况下,每个集群都使用相同的repmgr DB(例如在主PG集群中),并且基本上独立于其他服务器集群。
谢谢...
postgresql - 如何将 repmgr 与 dockerized Postgresql 一起使用?
我正在尝试使用复制和自动故障转移创建 Postgresql 设置。我希望它是可重用、可扩展和可移植的,所以我尝试使用 docker 来运行 Postgres。我也不想重新发明轮子,所以我尝试使用 repmgr 作为设置 postgres 复制时推荐的工具。
在第一台机器上,我使用 docker-compose 和简单的 Dockerfile 启动了主节点。然后我添加了 bash 脚本在容器启动后运行。看起来 master 设置正确。
然后在第二台机器上我尝试运行待机。我在 docker 中启动了 postgres 并进行了实验。正如我们在repmgr github repo上看到的那样,要运行待机,我需要使用 repmgr 命令克隆 master,该命令在内部使用 pg_basebackup。Pg_basebackup 不会让我将 db 克隆到非空目录(pgdata)中,因此我需要在克隆之前删除由 dockerized postgres 创建的 pgdata。当我这样做时,容器会死掉,因为当然唯一的服务 postgres 会在没有文件的情况下死掉。所以之后我不能运行 repmgr 命令,因为里面没有运行它的容器:)
所以我尝试为备用创建另一个 Dockerfile。内部 pgdata 被删除,然后 repmgr 克隆 master,然后 postgres 正确启动。没有错误。但是当我登录到主机并验证复制是否正在运行时 - 它不是。
- 是否可以为 dockerized postgres 运行 repmgr?
- 如果是这样,怎么做?我究竟做错了什么?
- 如果没有,如何在不手动配置每台服务器的情况下创建 postgres 集群复制?你知道,不把服务器当作宠物,而是当作牛等:)
我使用和创建的文件:docker-compose.yml(主节点和备用节点):
主 Dockerfile:
当 postgres 容器(主)处于活动状态时运行的 Bash 脚本:
备用 docker-compose 也是一样。备用 Dockerfile:
postgresql - 用于 Postgresql 9.6 的 pgpool HA + repmgr
我正在尝试在我的 postgresql 环境(2 个 postgresql 服务器 + 1 个 pgpool)中配置 pgpool 来执行 HA,而 repmgr 负责复制。
我在日志中收到下一条消息:
pool_hba.conf :
在 postgresql pg_hba.conf 中,我启用了来自 pgpool 服务器的连接:
1.可能是什么问题?
2.如果repmgr负责复制,我应该将参数backend_flag设置为'DISALLOW_TO_FAILOVER'吗?
谢谢。
postgresql - PgPool-II 和 repmgr 自动故障转移
我有用于 HA 的 pgpool-II 和用于自动故障转移的 repmgr。Pgpool-II 也可以运行故障转移 我只是想知道使用 pgpool 或 repmgr 进行自动故障转移?如果 pgpool 可以进行故障转移,我是否需要使用 repmgr?并使用shell脚本来提升新主人?
centos7 - repmgr - Automate process of making primary to standby after failover
I have two postgres servers running on CentOS 7 with repmgr 4.1.0-1. So far I have automated the process of promoting the standby to primary after the primary server fails but when it comes back they both act as primary and I don't think the follow_command from repmgr.conf is executed. I can do it manually by deleting the data folder and clone it from the new primary server, and then register it as standby.
repmgr.conf on server 1
repmgr.conf on server 2
After the server starts again it connects to itself and resumes monitoring. Here is the log
Is there a way to automate the primary to switch to standby when it starts again or the original standby that was promoted to go back to standby? Or maybe I can redirect to a script that'll do that from the follow_command, for example: follow_command='change-to-standby.sh'
I will appreciate any help.
postgresql - PostgreSQL/PostDock:主节点中的自动恢复失败
我使用 Docker 服务和 Docker swarm 来部署 PostDock 集群
这是我的 docker-compose.yml 设置:
我跑:
一切顺利。
但是,在我多次更新服务后,主节点上的自动故障转移失败了。在主节点日志文件中,我注意到恢复过程无法检测到数据库 replication_db 和架构 replication_db.public:
如您所见,没有指定模式,只有点号“。” ,并且用户也错了:应该是replication_user,而不是用户public
这导致此错误消息:
据我了解,当自动故障转移成功时,预期的恢复日志应该是:
有人知道这个问题的根本原因吗?
postgresql - 在 kong pg_host 中设置多个 Postgresql 集群 IP
我将 kong 设置为 API 网关并使用 Postgres 作为数据存储,我想使用 pg 集群设置 kong,如果一个 Postgres 实例关闭,它可以使用另一个实例重新启动。无法在 kong.conf 中为 pg_host 提供多个 ip
pg_hba = xx.xx.xx.xx , xx,xx,xx,xx
我给 IPs 逗号分隔面对错误无法检索当前迁移:[postgres 错误] 主机或服务未提供,或未知
当我给多个 ips 空间分隔时,它总是尝试连接第一个 IP 而忽略第二个。帮助!!!