我正在尝试使用该pg_upgrade
工具从 9.2 升级到 9.5。
我使用的是 CentOS 7.0
current postgres bin folder: /opt/rh/postgresql92/root/usr/bin
new postgres bin folder: /opt/rh/rh-postgresql95/root/usr/bin
current data folder: /mnt/postgres/data
new data folder: /mnt/postgres/data95
我已经设置了LD_LIBRARY_PATH=/opt/rh/rh-postgresql95/root/usr/lib64
当我跑步时
/opt/rh/rh-postgresql95/root/usr/bin/pg_upgrade --link --check --old-bindir=/opt/rh/postgresql92/root/usr/bin --new-bindir=/opt/rh/rh-postgresql95/root/usr/bin --old-datadir=/mnt/postgres/data --new-datadir=/mnt/postgres/data95
我收到这条消息:
Performing Consistency Checks
-----------------------------
Checking cluster versions /opt/rh/postgresql92/root/usr/bin/pg_ctl: error while loading shared libraries: libpq.so.postgresql92-5: cannot open shared object file: No such file or directory
Could not get pg_ctl version data using "/opt/rh/postgresql92/root/usr/bin/pg_ctl" --version: No such file or directory
Failure, exiting
我不确定为什么要尝试使用 9.2 版本的 pg_ctl
which pg_ctl
回报
/opt/rh/rh-postgresql95/root/usr/bin/pg_ctl
我做错了什么?
在将旧版 PostgreSQL 9.2 升级到 11 时,我重复了这个问题。pg_upgrade 将失败并显示:致命:无法识别的配置参数“unix_socket_directory”
https://altinukshini.wordpress.com/2018/05/03/upgrade-postgres-9-2-to-9-6-in-centos-7-bold-lines/的博客条目给出了解决方案,同上:
现在运行 pg_upgrade(作为 postgres 用户),unix_socket_directories 错误应该消失了。
最后,(作为 root)恢复:
mv -f /usr/bin/pg_ctl{-orig,}
找到解决这个问题的方法,
LD_LIBRARY_PATH
同时使用旧的和新的 postgres bin 文件夹