Postgresql

升級到 postgres 10 後 pg_ctl 仍然指向 9.5.4

  • August 13, 2018

我已在 Ubuntu 14 上將 postgres 從 9.5.4 更新到最新的 10.4。

但是在安裝 postgres 10 之後,我看到了

support@platform1:/usr/bin$ ls -lah pg_ctl
lrwxrwxrwx 1 root root 34 Jun 13 08:59 pg_ctl -> /usr/lib/postgresql/9.5/bin/pg_ctl

該問題似乎與此處討論的問題相似。我不能使用那裡提到的答案,因為正在使用數據庫。所以我必須保持 9.5 和 10 一起安裝,直到執行數據遷移,因為pg_upgrade需要 9.5 和 10 二進製文件來執行遷移。

要安裝 postgres 10,我按照以下步驟操作:-

sudo add-apt-repository "deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main"
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install postgresql-10

然後使用 postgres 9.5 執行數據遷移pg_upgrade,然後刪除

pg_ctl不起作用,因為它指向現在已刪除的舊 9.5 安裝。

posgres -V也因以下錯誤而失敗

support@platform1:/usr/bin$ postgres -V
The program 'postgres' is currently not installed. You can install it by typing:
sudo apt-get install postgres-xc

有人可以讓我知道出了什麼問題,我該如何解決?

是的,一旦你升級了 Postgresql,你的環境 PATH 仍然指向舊路徑。做以下事情。

例如:您的 PG10 的 pg_ctl 可能位於/usr/share/pg10/bin/pg_ctl.

所以你需要導出這個路徑。

export PATH=/usr/share/pg10/bin/$PATH

並且,刪除舊版本,然後註銷並登錄。

如果從 Postgres APT 儲存庫安裝,您應該使用pg_ctlcluster它,因為它知道同時安裝了多個版本。

此外,postgres未安裝在預設 PATH 中的位置。這是設計使然;最終使用者不需要執行它,因為它由pg_ctlcluster.

引用自:https://dba.stackexchange.com/questions/214671