Postgresql

有:Postgres 數據庫文件。需求:正常執行的數據庫

  • May 19, 2015

我正在執行帶有 postgres/postgis 設置的 Ubuntu 14.04,並且在一個脆弱的時刻刪除了 PostgreSQL 9.1(似乎是我升級到 14.04 之前從 12.04 開始的舊版安裝),我錯誤地說服自己我目前的 postgis 設置僅依賴於 9.3。

情況並非如此,更糟糕的是,我在實例執行時將其刪除,因此我前往儲存庫恢復 9.1。

Ubuntu 的儲存庫沒有用於 14.04 的 PostgreSQL 9.1,因此我改為從原始碼編譯,以便可以執行 pg_dump 或 pg_upgrade,這需要兩者的二進製文件。

但是我當時的問題是,僅僅因為我現在再次擁有 9.1 的工作版本,這並沒有使我之前的數據庫可見。

因此,據我所知,我的數據庫文件完好無損,但我需要將它們與我今天安裝的新 9.1 服務“掛鉤”。我希望這是微不足道的,但它已經讓我難了幾個小時。關於從哪裡開始更新配置的任何指針?

@a_horse_with_no_name 是完全正確的。因為你是從源碼編譯PostgreSQL的,所以pg_wrapperlike提供pg_ctlcluster的常用工具pg_lsclusters是不可用的。因此,Ubuntu 上的 PostgreSQL 初始化腳本不會啟動您的 PostgreSQL 9.1 DB。

您可以將自定義二進製文件掛接到pg_wrapper.

假設您的 9.1 數據目錄仍歸使用者所有postgres並位於預設位置:

  • sudo -u postgres -i
  • PGPORT=5440 PATH=/path/to/your/9.1_install/bin pg_ctl -D /path/to/your/9.1/db
  • PGPORT=5440 /path/to/9.3/bin/pg_dump -Fc -f mydb.pgdump mydb
  • PGPORT=5440 /path/to/9.3/bin/pg_dumpall --globals-only > my_91_globals.sql

然後my_91_globals.sql針對您的 9.3 伺服器執行,或檢查它並進行任何必要的更改。

然後pg_restore使用9.3 中mydb.pgdump的。pg_restore

如果您使用的是 9.1 數據目錄的恢復備份副本,您可能需要對此進行調整,因為它的權限可能不是postgres使用者的權限。哪個使用者擁有它並不重要,但pg_hba.conf如果您使用peer身份驗證並以其他使用者身份連接,您可能需要進行調整。

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