1. 程式人生 > >看mongodb.log日誌xiufu,發現日誌裡有以下語句:Mon Mar  317:46:37

看mongodb.log日誌xiufu,發現日誌裡有以下語句:Mon Mar  317:46:37

開發十年,就只剩下這套架構體系了! >>>   

看mongodb.log日誌,發現日誌裡有以下語句:

2013年09月03日 ⁄ 綜合 ⁄ 共 640字 ⁄ 字號    ⁄ 評論關閉

 

看mongodb.log日誌,發現日誌裡有以下語句:
..............
Mon Mar  317:46:37 [conn148] Assertion: 10295:getFile(): bad file number value (corrupt db?): run repair
..............
翻譯 為: 宣告: getFile():錯誤的檔案數值(損壞的資料庫?):執行修復

查了查mongodb的文件,遂用以下方法程序修復:

首先停止mongod服務,刪除 mongodb.log,也可以備份一下
# rm -rf  /data/mongodb/mongodb.log

刪除mongodb程序檔案
# rm -rf  /mongodb/mongod.lock

進行修復
# /usr/local/mongodb/bin/mongod --repair --dbpath /mongodb/ --repairpath /mongodb/repair/

這時mongodb程序會在/mongodb/repair/ 目錄下儲存臨時的修復資料庫檔案,檔案目錄為“$tmp_repairDatabase_0”所以此目錄空間要足夠大。
生產環境資料庫為100G,修復進行了大約3個半小時,在“/mongodb/repair/$tmp_repairDatabase_0"目錄下產生了近30G的資料庫臨時檔案,修復完成後資料庫臨時檔案自動清除。

之後開啟mongod服務,檢查資料庫,發現讀寫正常,mongodb.log沒有出