蒙古資料庫
高洛峰
高洛峰 2017-04-27 09:02:59
0
1
620

大家好,為什麼mongodb存入的數據,第二天啟動mongo的時候,刪除mongod.lock然後數據全沒了,是什麼原因?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回覆(1)
黄舟

解決辦法

首先,mongod.lockmongo服务端启动后在硬盘中创建的一个锁文件,如果你正常退出mongod服务,该文件即使还存在,也不会影响下一次启动mongod服務的。同時,這個檔案也會記錄mongod在運作過程中的一些狀態,以便在正常重新啟動服務時能夠取得異常訊息提示。

注意:一般只有在非正常退出mongod服务时,才需要删除mongod.lock文件。正常退出,無需刪除。

現在資料遺失,應該是非正常退出,即資料庫崩潰,如果沒有开启journal,那麼就沒辦法保證資料的完整性了。

所以在生產環境中通常都會开启journal

如果資料沒有備份,只能試試使用mongod內建的修復,執行mongod加上--repair選項:

mongod --dbpath /path/to/corrupt/data --repair

是否要刪除mongod.lock檔案?

當正常關閉mongod時,會清除mongod.lock文件,下次啟動時知道上次是完全關閉的。相反,如果lock檔案沒有被清除,mongod沒有正常的關閉。

如果mongod偵測到沒有正常的關閉,不會讓你再次啟動,啟動時會列印上次異常關閉的訊息,需要你複製一份資料。然而,有些人已經意識到,可以透過刪除這個lock檔案來繞過這個檢查。所以就有了刪除這個檔案的原因。在啟動時刪除lock檔案意味著你不知道或不關心你的資料是否已經損壞。如果無法啟動mongod,請修復你的數據,而不是刪除lock檔案。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板