错误:无法访问文件“$libdir/repmgr_funcs”,没有这个文件或目录。

5

我遵循这个链接在Ubuntu postgresql服务器上创建主从复制。

我的repmgrpostgresql的配置如下:

Postgresql 9.5-: /opt/PostgreSQL/9.5/

repmgr-: /usr/lib/postgresql/9.5/bin/repmgr

repmgr.conf -: /etc/rep.conf

pg_config --pkglibdir => /usr/lib/postgresql/9.5/lib


ls /usr/lib/postgresql/9.5/lib | grep repmgr_funcs => repmgr_funcs.so

我遇到了一个错误:“无法创建该函数”。
repmgr_update_last_updated: ERROR:  could not access file "$libdir/repmgr_funcs": No such file or directory

ERROR: Unable to create repmgr schema - see preceding error message(s); aborting

库是否安装在正确的位置? $ pg_config --pkglibdir => /usr/lib/postgresql/9.6/lib 然后 $ ls /usr/lib/postgresql/9.6/lib | grep repmgr_funcs => repmgr_funcs.so - Łukasz Kamiński
@ŁukaszKamiński 我更新了问题,请检查一下。感谢您的回复。 - Manish Yadav
你可以在函数体中给出库所在的绝对路径,例如 AS '/usr/lib/postgresql/9.5/lib/repmgr_funcs'。但如果你已经将其放在 $libdir 中,这并不重要。也许由于某种原因,Postgres 无法访问其 $libdir。很遗憾,我无法想出任何好的答案。 - Łukasz Kamiński
@ŁukaszKamiński 感谢您的回复,因此我将路径添加到libdir中。 - Manish Yadav
1个回答

6
如果您使用的是版本为4或更高版本的 repmgr,那么您需要在 postgresql.conf 中进行更改:
shared_preload_libraries = 'repmgr_funcs'
shared_preload_libraries = 'repmgr'
以下是升级说明:

repmgr 共享库已从 repmgr_funcs 更名为 repmgr,这意味着 postgresql.conf 中的 shared_preload_libraries 需要更新为新名称:shared_preload_libraries = 'repmgr'


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接