mongodb關閉方法

最近再用mongodb做開發,在linux上嘛,習慣性的會使用kill -9 PID來關閉服務。

結果每次關閉再重啓mongodb後,mongodb總會自己關閉。看日誌也沒看出什麼來,然後就百度唄。

發現用kill -9殺死mongodb的後果挺嚴重。

然後去官網逛了一圈,查了一下

MongoDB使用的是內存映射存儲引擎:

它會把磁盤IO操作轉換成內存操作,如果是讀操作,內存中的數據起到緩存的作用,如果是寫操作,內存還可以把隨機的寫操作轉換成順序的寫操作,總之可以大幅度提升性能。

寫操作會被每隔60秒(syncdelay設定)的flush到磁盤裏。如果在這60秒內flush處於停止事情我們進行kill -9那麼從上次flush之後的寫入數據將會全部丟失。

如果在flush操作進行時執行kill -9則會造成文件混亂,可能導致數據全丟了。

官方描述:

Sending a KILL signal kill -9 will probably cause damage as mongod will not be able to cleanly exit.  (In such a scenario, run the repairDatabase command.)

幸虧發現的早啊...不然指不定出什麼事故

最後查到可以用以下方法關閉mongodb


1、使用killall mongod

2、使用kil  -15 PID

3、在admin用戶下執行db.shutdownServer()命令


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章