2013-08-19 83 views
2

我對這裏需要做的事情感到困惑。我對Mongo很陌生。我在Amazon EC2上建立了一個小型Mongo服務器,其中包含EBS卷,一個用於數據,一個用於日誌。我需要做一個備份。至少目前來說,在深夜採取數據庫是可以的。Mongodb EC2 EBS備份

使用Boto程式庫,EBS快照和python做備份,我建了一個簡單的腳本,執行以下操作:

須藤服務的MongoDB停止數據的 運行備份日誌 須藤服務的MongoDB 運行備份開始

該腳本已經過並重新啓動,但我在AWS控制檯注意到快照仍在創建中,即使boto已經恢復,但Mongo已重新啓動。當然不理想。

我查了蒙戈文檔,發現什麼爲備份做這樣的解釋:

http://docs.mongodb.org/ecosystem/tutorial/backup-and-restore-mongodb-on-amazon-ec2/#ec2-backup-database-files

這是好消息,但有點不清楚。如果您正在使用日記功能,則說:

如果dbpath映射到單個EBS卷,則繼續備份數據庫文件。

我們有一個數據卷。所以,我假設這意味着繞過沖洗和鎖定的步驟。但在的末尾備份數據庫文件,它討論了刪除鎖。

所以,我有點困惑。當我最初閱讀它時,我實際上不需要做任何事情 - 我可以運行備份,而不必擔心沖洗/鎖定時間。我可能不需要把DB放下。但是我偏執的部分說不,這聽起來很可疑。

任何有關這方面的經驗,或經驗,或古老的知識?

回答

7

由於您正在使用日記功能,因此您可以在不佔用數據庫的情況下運行快照。只要日誌文件位於相同的EBS捲上,這種情況就沒有問題,除非將其他符號鏈接到其他文件夾中。

我們在亞馬遜上運行了很多mongodb服務器,我們也是這樣做的。

+0

非常感謝,那是我期待的良好答案。 – CargoMeister

+0

該文檔解釋瞭如何做到這一點,也是關於EBS之上的軟件RAID的重要一點:http://docs.mongodb.org/manual/tutorial/backup-databases-with-filesystem-snapshots/ –

0

我同意在採取崩潰一致性快照的情況下日記應該保持一致。也就是說,所有現代數據庫和應用程序都有各種日誌記錄和事務日誌機制,而且對於生產應用程序而言,人們通常更願意採用一致的快照,因爲這些機制並不總是100%防彈。 如果你願意,你可以閱讀我公司的博客有關單個服務器的MongoDB的備份以下職位:

http://www.n2ws.com/blog/mongodb_consistent_backup.html

我們還發表了兩篇帖子上的MongoDB集羣的備份:

http://www.n2ws.com/blog/mongodb_cluster_consistent_backup_part_1.html http://www.n2ws.com/blog/mongodb_cluster_consistent_backup_part_2.html