2011-06-12 50 views
1

我有了MongoDB的一臺機器和它的數據是在/數據/ DB照舊電氣脫扣後消失MongoDB的整個/數據/ DB。是否正常導致崩潰

當我的機器由於電力故障而崩潰時,我的MongoDB拒絕啓動(Mac OS X Server通過LaunchAgent)並且/ data/db神祕地消失!

也是所有的日誌文件被清除。這發生在我的發展SSD MBA和我認爲只是一個奇怪的SSD案例。但是當我的XServe服務器正在通電時,它也正在獲得它。

我在某處丟失了一些數據保護文章嗎?可以肯定的是,只要刪除/ data/db,就不可靠!

回答

3

不,這不正常。

如果不啓動,很可能MongoDB是表明你需要運行修復,因爲mongod.lock存在和/數據/ DB具有一定的狀態。但是這意味着/ data/db存在。

如果/數據/ DB存在,但是是空的(在這種情況下會很糟糕明顯),它將開始直到。

如果您缺少日誌,聽起來像是一個更普遍的磁盤問題。

因此,檢查啓動消息,如果有關於mongod.lock那裏有數據。也與v1.8 +使用日記。 (儘管即使沒有日誌也不會丟失所有的數據文件)

+0

偉大的答案,但我複製/粘貼下面的信息,是所有正確的? (1)mongodb沒有前滾日誌的可靠性......如果一個節點由於某種原因不乾淨地停止工作,你就不能相信它上面的數據,並且必須從一個副本重建節點。這是一個非常脆弱的情況。單個站點的停電可能會使所有數據處於不可信狀態。最好備份好。 (2)mongodb是一個堆+ b-tree,因此沒有寫優化......由於工作集超出內存大小,mongodb的隨機寫入性能將更接近innodb/mysql .... 。 – sirmak 2011-06-13 18:45:52

+0

是的很好的小費,並感謝1.8信息。關於爲什麼整個/ data/db可以消失的任何解釋。我認爲我的XServe是帶SCSI驅動器的RAID。在電力之旅後他們現在工作得很好。 – mech 2011-06-14 02:10:32

+0

謝謝。我意識到我正在使用Homebrew,它的配置文件將dbpath放入另一個路徑,而不是正常的/ data/db – mech 2011-06-21 12:35:22

3

MongoDB永遠不會刪除您的數據庫文件!

在發生碰撞的情況下,你必須開始的mongod使用--repair選項。

另外:使用以V 1.8+的MongoDB的新日誌選項,應該有很大的幫助,當你執行MongoDB作爲獨立的服務。

+0

似乎是另一個mongo災難:( – sirmak 2011-06-12 15:34:17

+1

不,聞起來像是一個都市傳說 – 2011-06-12 16:07:24

+3

感謝1.8版本的信息,我使用的是1.6,並且不是它不是都市傳奇,我只是遇到了它,我被看到我的/數據/ dB的電源跳閘(水冷卻器罐)後完全消失。 我在這裏不是傳播什麼,請:)震驚 – mech 2011-06-14 02:05:32