将 postgres 从 9.5 升级到 11 时出现问题

Problem when upgrading postgres from 9.5 to 11

我在尝试将 PostgreSQL 从 9.5 升级到 11 时遇到问题。我正在使用 initdb 来创建我的 master,当我尝试 pg_upgrade -c 时出现这样的错误:

Could not load library "$libdir/repmgr_funcs": ERROR: could not access file "$libdir/repmgr_funcs": No such file or directory

我检查了\dx,除了plpgsql,没有安装任何扩展,我已经在Postgres 11中安装了新版本的repmgr。

你知道如何解决这个问题吗?

一些线索:我检查了 /usr/lib/postgresql/9.5/lib 并找到 repmgr_funcs.so,但它是空的。那么手动删除是安全的吗?我还在复制主从。

在过去的某个时候,repmgr 有一个名为 repmgr_funcs.so 的共享库,但在最近的版本中没有。这可能会导致升级过程中出现问题。

最简单的解决方案是在升级之前卸载 repmgr,然后在新系统上重新安装它。

如果 repmgr 作为扩展安装,只需 DROP EXTENSION repmgr 在旧系统上。否则,您将不得不识别函数并单独删除它们:

SELECT proname, pronamespace::regnamespace
FROM pg_proc
WHERE probin LIKE '%repmgr%';

请先测试一下,然后再在您的实时系统上尝试。