我遇到了一個很大的問題 - 我設法意外地從我的硬盤中卸載了整個PostgreSQL DBMS。我也失去了我的數據庫,並沒有做任何包含數據的轉儲。但是,我確實備份了來自服務器的所有文件。是否有可能以某種方式從這些文件恢復數據庫?從文件中恢復postgresql
我使用的操作系統是Debian 6,而DBMS版本是PostgreSQL 8.4。
如果確實有可能,那麼我應該如何去實現這一目標?
ps。對不起我的英語不好。
我遇到了一個很大的問題 - 我設法意外地從我的硬盤中卸載了整個PostgreSQL DBMS。我也失去了我的數據庫,並沒有做任何包含數據的轉儲。但是,我確實備份了來自服務器的所有文件。是否有可能以某種方式從這些文件恢復數據庫?從文件中恢復postgresql
我使用的操作系統是Debian 6,而DBMS版本是PostgreSQL 8.4。
如果確實有可能,那麼我應該如何去實現這一目標?
ps。對不起我的英語不好。
確保您的備份安全。只要我們有,我們可以重新開始。
恢復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。
我從備份中複製了/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
檢查/ var/log/postgresql上的權限 –
您是否有數據目錄的備份,或$ PGDATA指向的任何位置? – thisfeller
請注意,使用'apt-get remove'或'dpkg -r'卸載不會刪除數據目錄。只有清除操作才能做到這一點。首先檢查'/ var/lib/postgresql'中的內容。如果這裏有'8.4/main',那就是你的數據目錄。 –