Postgresql

Postgres 從 11 升級到 12 後數據庫失去

  • July 10, 2020

這不是我的第一次升級。過去我從 9 升級到 10,從 10 升級到 11。我以為我上次把所有東西都寫下來了,但顯然沒有。在版本 11 中,我的數據庫位於nl_BE.utf-8

                             List of databases
  Name    |  Owner   | Encoding |   Collate   |    Ctype    |
-----------+----------+----------+-------------+-------------+
glewlwyd  | glewlwyd | UTF8     | nl_BE.utf-8 | nl_BE.utf-8 |
postgres  | postgres | UTF8     | nl_BE.utf-8 | nl_BE.utf-8 | 
prda      | postgres | UTF8     | nl_BE.utf-8 | nl_BE.utf-8 |
template0 | postgres | UTF8     | nl_BE.UTF-8 | nl_BE.UTF-8 |
template1 | postgres | UTF8     | nl_BE.utf-8 | nl_BE.utf-8 |

(5 rows)

安裝後(apt-get install postgresql-12)我修改/etc/postgresql/12/main/postgresql.conf並更改en_US.UTF-8nl_BE.UTF-8. 在以前的升級中,我將此文件複製到了我的數據目錄中,但 12 似乎不喜歡這樣。11 和 12 版本的埠號不同。

當我使用/usr/lib/postgresql/12/bin/initdb --locale=nl_BE.UTF-8 --pgdata=/srv/postgres/data/12新實例創建數據庫時,但數據庫位於en_US.UTF-8. /usr/lib/postgresql/12/bin/pg_upgrade -b /usr/lib/postgresql/11/bin -B /usr/lib/postgresql/12/bin -d /srv/postgres/data/11 -D /srv/postgres/data/12沒有錯誤的結束。

當我連接到實例時,我自己的數據庫不存在。一定是因為語言環境不正確。我還更改了export LANG=nl_BE.UTF-8shell 的語言環境 ( ),但這並沒有幫助。我做錯了什麼?

我關注了@Colin ’t Hart 的評論,這解決了問題。隨著pg_upgradecluster -v 12 11 main /srv/postgres/data/12升級完成。我將埠更改為5432並重新啟動它。現在我的應用程序正在使用版本 12 數據庫。

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