2013-07-25 74 views
0

我遇到了一個很大的問題 - 我設法意外地從我的硬盤中卸載了整個PostgreSQL DBMS。我也失去了我的數據庫,並沒有做任何包含數據的轉儲。但是,我確實備份了來自服務器的所有文件。是否有可能以某種方式從這些文件恢復數據庫?從文件中恢復postgresql

我使用的操作系統是Debian 6,而DBMS版本是PostgreSQL 8.4。

如果確實有可能,那麼我應該如何去實現這一目標?

ps。對不起我的英語不好。

+0

您是否有數據目錄的備份,或$ PGDATA指向的任何位置? – thisfeller

+0

請注意,使用'apt-get remove'或'dpkg -r'卸載不會刪除數據目錄。只有清除操作才能做到這一點。首先檢查'/ var/lib/postgresql'中的內容。如果這裏有'8.4/main',那就是你的數據目錄。 –

回答

0

確保您的備份安全。只要我們有,我們可以重新開始。

恢復PostgreSQL服務器軟件(檢查包標題)

apt-get install postgresql-8.4 postgresql-client-8.4 postgresql-contrib-8.4 

停止服務器

/etc/init.d/postgresql stop 

恢復所有的數據文件。確保所有權是正確的:

cd /var/lib/postgresql/8.4/ 
mv main main.OLD 
cp -a /path/to/backup/main . 
/etc/init.d/postgresql start 

檢查日誌(/無功/日誌/ PostgreSQL的/ ...) - 如果出現您的備份,而數據庫是空閒的,你可能是幸運的。

請注意,您需要.../main /中的所有內容 - 數據庫文件位於主/基礎中,但還有事務日誌以及其他所需的零碎和碎片。

如果您遇到問題,請檢查您的權限,檢查您的postgresql.conf文件(如果有的話,還從備份中恢復該文件,pg_hba.conf等)。如果您使用的是pl/perl或其他一些早期版本,可能還需要安裝其他一些軟件包。現在,如果您在抱怨缺少日誌文件或壞塊時遇到問題,那麼意味着數據庫寫入磁盤時發生備份,並且可能存在損壞。但是,讓我們樂觀,希望最好。

如果有效,請檢查一切看起來是否正常,並立即獲取任何數據庫的pg_dump。

+0

我從備份中複製了/var/lib/postgresql/8.4/main和/etc/postgresql/8.4/main。我嘗試了幾次,但我總是有這樣的錯誤: 正在啓動PostgreSQL 8.4數據庫服務器:mainThe PostgreSQL服務器啓動失敗。請檢查日誌輸出:錯誤:無法打開日誌文件/var/log/postgresql/postgresql-8.4-main.log ...失敗! 失敗! 在日誌文件中我有這樣的事情: 自動清理啓動器啓動的 不完全啓動包 不完全啓動 獲得快速關閉請求 所以,我確認最壞的情況下包? – KRH

+0

檢查/ var/log/postgresql上的權限 –