有:Postgres 數據庫文件。需求:正常執行的數據庫
我正在執行帶有 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_wrapper
like提供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
身份驗證並以其他使用者身份連接,您可能需要進行調整。