升级到较新版本(10.7)后,psql仍指向旧版本

时间:2019-04-01 09:33:51

标签: postgresql psql postgresql-10

我在rhel上安装了2个不同的主要版本的postgres 9和10。

尝试更新psql包后的最新情况: 服务器版本为10.7时,我在rhel 7.6上安装了psql 9.2.24。 我的yum仓库有较早的问题,它已损坏,后来,我在here中提到的以下命令的帮助下将其恢复/修复(您可以初步了解我的问题是损坏的yum仓库)< / p>

echo 7 > /etc/yum/vars/releasever

我在here检查了我的更新替代品 并且它正确地引用了10.7目录下的psql,但是在连接到现有数据库时仍然看到psql旧版本号。

以下是我更新psql软件包所遵循的步骤:


  1. 所有数据库均保持运行状态。
  2. yum安装postgresql10.x86_64
  3. 第2点中提到的命令,因为yum存储库已损坏,在机器上安装/升级了很多软件包。此次升级中与Postgres有关的关键声明之一是
  

postgresql10 x86_64 10.7-2PGDG.rhel7 pgdg10 1.6M

请注意,在上述更新期间/之前/之后,我尚未重启任何正在运行的实例,并且以某种方式认为它与以下事实有关:在我重启(停止现有实例并重新启动它们)之前正在运行psql / db的实例,psql的更改将不会开始反映出来,但这只是我的假设。有人可以帮忙我在此升级过程中理解/发现的错误吗。

除上述内容外,在psql / postgres方面没有任何更改/升级。我仍然有两种postgres安装:9和10。

1 个答案:

答案 0 :(得分:1)

几个月前我做了此修复,但我忘了。 here处有相似之处,且有更好的答案,因此,所有学分都可以在此回答张贴者。但是,这是我为解决该问题所做的事情:-

  1. 重新启动已经运行的postgres实例没有帮助。
  2. 我检查了which psql,向我展示了/usr/bin处的psql之一。它已经存在了9个月,所以肯定没有在我的问题中提到的yum postgres...安装步骤中安装任何东西,这使我意识到新的软件包安装不会立即覆盖它。
  3. 我尝试使用 update-alternatives --config pgsql-psql,但收到与上述SO答案相同的错误: /usr/bin/psql exists and it is not a symlink
  4. 此页面上的
  5. 主要线索来自@Alexander Gorg的评论,其中ln命令不会覆盖现有链接,需要手动将其删除。我想删除符号链接,但最终将/ usr / bin的psql重命名为psql_org。 确实,我在此过程中发出了ln命令。
  6. 现在,我发出了update-alternatives命令并重新启动了其中一个实例。正确的psql现在在那里。

以上确实帮助修复了psql版本,但其他实用程序pg_basebackup和其他实用程序仍在指较旧的版本。我相信更好的方法是删除旧的postgresql安装。我试图用

列出现有的postgresql版本
yum list installed | grep postgres

仅显示

postgresql10*

软件包在那里,我记得我已经删除了旧的postgres版本, yum erase postgres...,所以不确定要删除什么。

暂时,我已通过在/ usr / bin中重命名其他实用程序并更新其替代方法来进一步解决此问题。

相关问题