2012-01-10 50 views
6

的備份,我認爲已經有人提出:MongoDB的:如何做的MongoDB

1. stop the mongod 
2. backup the data directory 

它是可靠的,我的意思是,保證100%的成功恢復? 而我無法找到哪個目錄存儲數據...任何命令都可以幫助我找到它?

回答

6

如果mongod進程乾淨地退出(即沒有崩潰或kill -9東西),那麼在某處複製數據文件是安全的。

如果您當前的安裝中斷(例如,由於不正常關機造成的數據損壞),您可以刪除其文件,將該備份複製並再次啓動mongod

默認數據目錄是/data/db,但它可能會在您的配置文件中設置爲其他值。例如,我將它設置爲/var/lib/mongodb

您還可以使用mongodump從實時服務器進行備份(這可能會影響性能)。使用mongorestore恢復由mongodump所做的備份。

+0

爲:如何使用** mongodump **和** ** mongorestore,看到類似的問題和答案這裏mongodump和mongorestore ** **語法:http://stackoverflow.com/a/ 21309914/2728686 – AmpT 2014-01-23 13:46:29

5

在IGN,我們通過mongodump以每小時cron作業的方式進行熱備份,並且每半小時執行一次filer快照(NetApp存儲)。如果您的系統寫得不太重,而且您可以負擔寫入塊,請嘗試使用fsynclock來刷新寫入磁盤並防止進一步寫入。這可以跟着mongodump,完成後你可以解鎖數據庫。請注意,你必須是管理員才能這樣做。

db.runCommand({fsync:1,lock:1}) 
+0

你會推薦什麼選項來編寫重型數據庫? – VinnyD 2012-03-15 06:33:07

+0

磁盤快照或延遲從服務器。 – lobster1234 2012-03-15 08:03:02

+0

以及在分片環境中的備份呢? – 2012-10-19 16:39:01