postgresql repmgr pg_rewind失败,无法获取pg_control远程文件

bvn4nwqk  于 2023-05-28  发布在  PostgreSQL
关注(0)|答案(1)|浏览(249)

我正在测试repmgr为PostgreSQL集群设置自动故障转移和复制。
到目前为止,我已经成功地设置了一个3节点集群,其中包括一个主节点和两个备用节点。故障转移是成功的,我故意关闭主节点,其中一个备用节点自动成功提升为主节点。
当我想将出现故障的主节点作为备用节点同步回群集时,prob启动...
如果我尝试在postgres服务启动时使用 node rejoin,我将看到以下消息:

ERROR: database is still running in state "in production"
HINT: "repmgr node rejoin" cannot be executed on a running node

很公平,但如果我在停止postgres服务后运行 node rejoin,我会得到以下结果:

ERROR: pg_rewind execution failed
DETAIL: pg_rewind: error: could not fetch remote file "global/pg_control": ERROR:  permission denied for function pg_read_binary_file

我使用的PostgreSQL版本是15,repmgr版本是5.3.3
请在这方面帮助我。谢谢~

sqxo8psd

sqxo8psd1#

The documentation说:
该连接必须是普通(非复制)连接,其角色具有足够的权限在源服务器上执行pg_rewind所使用的函数(有关详细信息,请参见“注解”部分),或者是超级用户角色。
您用于复制的用户似乎不符合这些条件。
我不是repmgrMaven,但我认为您应该在conninfo中有一个超级用户,在replication_user中有一个常规复制用户。

相关问题