2013-06-18 64 views
3

我有一個虛擬的虛擬機無法使用舊的postgresql數據庫(用於運行PostgreSQL 8.4)進行引導。我可以訪問文件系統(和pg_data目錄)。從pg_data目錄恢復Postgres數據庫

如何從這個數據目錄中提取數據(或恢復數據庫)?

是否像將此目錄的內容複製到工作的8.4 pg_data目錄一樣簡單?

回答

4

其實它基本上就是這麼簡單。以下是我採取的步驟:

1)將data目錄(/var/lib/postgres/8.4/data)歸檔爲tar.gz文件。

2)將文件移動到工作工作站(我的桌面,運行Linux的基於Debian的發行)

3)安裝PostgreSQL的APT倉庫並安裝postgresql-8.4(或版本,這是破服務器上)使用在the PostgreSQL Linux downloads for Ubuntu找到的說明。

4)將tar.gz文件的內容提取到「新」PostgreSQL 8.4安裝(/var/lib/postgresql/8.4/main/)的主目錄中。

5)修改postgresql.confport = 5432更改爲port = 5433。這允許我們使用端口號來控制我們連接到哪個版本的PostgreSQL(假設我們的工作站上有最新的穩定版本,比如9.1)。所以9.1將留在默認的5432,和8.4將在5433.

6)修改所提取的數據目錄,這樣的Postgres的所有權是業主:chown -R postgres:postgres /var/lib/postgresql/8.4/main/*

7)啓動Postgres服務:service postgresql start(你會看到兩個版本啓動)

8)su對於Postgres和使用端口5433連接,那是舊服務器上的數據庫名稱:psql -p 5433 DatabaseName