mongodb啓動很慢

故障現象

mongodb重啓後,等了幾十分鐘還一直沒啓動完成,單節點副本集,狀態一直處於startup

原因分析

查看mongod的錯誤日誌,發現一直處於building index,但根據之前的經驗,只有在重做secondary節點的時候纔會經常處於building index狀態,而這個db是primary節點,於是詳細查看了關於這個building index的全部信息

 2017-01-05T17:24:59.473+0800 [IndexRebuilder] found 1 index(es) that wasn't finished before shutdown
2017-01-05T17:24:59.473+0800 [IndexRebuilder] found 1 interrupted index build(s) on aso.app_version_info_chn1
2017-01-05T17:24:59.473+0800 [IndexRebuilder] note: restart the server with --noIndexBuildRetry to skip index rebuilds
2017-01-05T17:24:59.473+0800 [IndexRebuilder] going to rebuild: { v: 1, unique: true, key: { _fts: "text", _ftsx: 1 }, name: "$**_text", ns: "aso.app_version_info_chn1", weights: { $**: 1 }, default_language: "english", language_override: "language", textIndexVersion: 2 }
2017-01-05T17:24:59.474+0800 [IndexRebuilder] build index on: aso.app_version_info_chn1 properties: { v: 1, unique: true, key: { _fts: "text", _ftsx: 1 }, name: "$**_text", ns: "aso.app_version_info_chn1", weights: { $**: 1 }, default_language: "english", language_override: "language", textIndexVersion: 2 }
2017-01-05T17:24:59.474+0800 [IndexRebuilder]   building index using bulk method 

根據錯誤日誌的提示信息,看樣子原因是這樣的:在db關閉之前,有一二較大的索引建立的操作沒有完成,db就直接shutdown了,等db再次啓動的時候,mongo默認會將這個index重建好,重建期間處於startup狀態

處理方法

由於不清楚building index到底要持續多久,根據錯誤日誌提示,重啓mongod時加上--noIndexBuildRetry參數來跳過索引重建。等啓動完成後,再評估是否需要建立這個index。

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