2012-07-23 65 views
5

我在amazon EC2上有一個postgresql數據庫,需要確定備份這些數據的最佳方法。我正在考慮兩個選項:Amazon EC2 postgresql備份:將數據目錄或pg_dump快照到一致快照的EBS捲上?

(1)將EBS卷掛載到某個目錄(如/ pgsqldata),並將此目錄用作postgresql數據目錄(在Amazon Linux上,缺省值爲/ var/lib/pgsql/data /)。然後,這個卷將獲得頻繁的快照。

(2)保持PostgreSQL的數據目錄在它的默認位置。然後使用pg_dump頻繁地將備份轉儲到/ pgsqldumps之類的位置,並且該卷在每個pg_dump後都會獲得快照。

第三種方法是簡單地快照根設備卷(我使用的是EBS支持的實例),因爲它既是一個web服務器,也是我的情況下的數據庫。我喜歡有一個專門的數據備份卷的想法。

最後,如果我正在對活動postgresql數據目錄進行直接快照,是否需要擔心在快照過程中可能對數據庫所做的更改?

感謝

+0

另請參閱http://www.postgresql.org/docs/9.1/interactive/continuous-archiving.html(如果您還沒有) – derobert 2012-07-23 20:50:50

回答

4

你應該反正體積移動到自己的EBS卷,這有助於在EBS卷寫爭以及其他好處。另外,我還將日誌寫入自己的卷中,並將其保存起來。

爲了回答這個問題,我做了兩個。讓EBS卷快照並進行數據庫轉儲。這樣,如果您想將實時數據同步到開發盒(取決於數據庫上的PII),則轉儲和恢復很容易,但您也可以輕鬆恢復新實例並附加快照。如果您的數據庫轉儲小於5GB,您可以將其同步到S3並忘記將備份存儲在自己的捲上,但如果不是,則需要將其存儲在自己的EBS捲上,然後將其存儲在常規基礎。

Here是我寫的這樣做的腳本,它可能已經過時了,但應該可以工作。