我有postgres數據庫的備份 - 整個數據庫實例在一次夜間備份。是否可以從該備份中僅恢復一個數據庫?或者,如果我想訪問單個數據庫(用於遷移或恢復),是否需要更改我的數據庫備份方案以執行單個轉儲?我可以從整個數據庫的pg_dump恢復一個模式嗎?
回答
您可以通過使用一些文字處理這樣的從文本格式(pg_dumpall)一個完整的數據庫集羣轉儲訪問單個數據庫:
awk '/^\\connect database_name/ {flag=1;print;next}
/^\\connect/ {flag=0}
flag { print }' \
< all_databases.sql \
> database_name.sql
這從「\connect database_name
」之間pg_dumpall文件都得到和未來「 \connect
「。但效率不高。
但我建議單獨傾銷每個數據庫這樣的:「我可以從整個數據庫集羣的pg_dumpall恢復只是一個數據庫」
# Dumping global data (for example roles)
pg_dumpall -g > /var/lib/pgsql/backups/globals.sql
#Dumping indidual databases in tar (uncompressed binary) format
for dbname in
`
psql -qXtc "
select datname from pg_catalog.pg_database
where datname<>'template0'" template1
`
do
pg_dump -b -F t "$dbname" > "/var/lib/pgsql/backups/$dbname.dump"
done
我假設你的意思
是的,如果您的備份是"an archive created by pg_dump in one of the non-plain-text formats." - 對pg_restore
使用「--schema =」選項。
另一方面,我不確定您在這裏使用了正確的術語 - 您將數據庫集羣稱爲「整個數據庫實例」;在你問「數據庫」,但在標題你寫的「模式」的解釋,等
編輯:現在,經過一番思索後,我相信你有一個集羣備份,以創建"pg_dumpall
"。 「pg_dumpall」僅創建純文本(SQL命令)備份。在這種情況下,不可能只恢復一個數據庫(或者只能從數據庫中恢復一個模式)。
那麼是的,你需要改變你的備份程序來備份使用非純文本格式的個人數據庫(--format = custom是推薦的)。
實際上我在我的數據庫服務器上使用的備份程序就是這樣做的。
謝謝。抱歉使用了混淆的術語。我目前在Oracle,MySQL和Postgres中有生產數據,有時候會對'數據庫','表空間','實例'等各種含義有所瞭解。 – cnk 2009-06-22 21:01:27
- 1. 我可以從wamp恢復我的mysql數據庫嗎?
- 2. 我可以從MySQL數據庫備份中恢復一個表嗎?
- 3. 從另一個數據庫備份恢復模型數據庫
- 4. 從mysqldump恢復單個數據庫到另一個數據庫
- 5. 應該/可以生成一個類的數據庫模式嗎?
- 6. 我怎樣才能`pg_dump`整個模式和**一些**表的數據?
- 7. 我可以從另一個數據庫複製一個數據庫中的表嗎?
- 8. 從pg_dump語法錯誤恢復數據庫
- 9. 我可以更快地恢復mysql數據庫嗎?
- 10. 從另一個數據庫恢復數據庫SMO
- 11. 我的數據庫模式可以與Mongo一起使用嗎?
- 12. 我可以從mongo oplog恢復數據嗎?
- 13. 我可以從數據庫中放入一個jLabel文本嗎?
- 14. 我可以從兩個整數中設置一個double嗎?
- 15. 我可以從兩個數據庫中檢索數據嗎?
- 16. 如何從包含多個數據庫的mysqldump恢復一個數據庫?
- 17. postgres使用pg_dump複製另一個數據庫中的表?
- 18. pg_dump是否需要-C參數來恢復數據庫?
- 19. 將數據從一個模式複製到另一個模式?
- 20. 恢復我的數據庫
- 21. 我可以使用DataTable將數據從一個數據庫導入另一個數據庫嗎?
- 22. 我可以將數據從一個託管數據庫導入另一個託管數據庫嗎?
- 23. 複製整個數據庫內容(模式和數據)
- 24. 我可以從我的數據庫中的blob加載一個Spring contextConfigLocation嗎?
- 25. 我可以在一個步驟中從本地歷史記錄恢復整個項目嗎?
- 26. 以編程方式恢復多個數據庫
- 27. Amazon RDS:可以在複製模式下設置數據庫嗎?
- 28. 可以給我一個xsl模板的「模式」的例子嗎?
- 29. 我想恢復數據庫
- 30. 如何在Oracle 11g中恢復我的數據庫模式?
謝謝。備用備份腳本看起來就像票證。 – cnk 2009-06-22 20:59:08