搜尋

首頁  >  問答  >  主體

蒙古資料庫

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

高洛峰高洛峰2773 天前612

全部回覆(1)我來回復

  • 黄舟

    黄舟2017-04-27 09:04:59

    解決辦法

    首先,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檔案。

    回覆
    0
  • 取消回覆