2013-08-23 31 views
0

在我的應用程序中,我正在對Mongodb集合執行以下查詢。它移動的collection所有記錄到his_collectionMongodb錯誤:JavaScript執行失敗

`for record in collection.find(): 
    his_collection.insert(record) 

collection.remove()` 

隨着3K行中collection表正常工作即所有的行被移動到his_collection。

但是,當我執行上述命令與10k行在collection。它絞死

現在,當我試圖MongoDB中使用命令mongo殼連接它拋出以下錯誤

MongoDB shell version: 2.4.5 
connecting to: test 
Fri Aug 23 12:41:28.762 JavaScript execution failed: Error: couldn't connect to 
server 127.0.0.1:27017 at src/mongo/shell/mongo.js:L112 
exception: connect failed 

我試着按照shell命令來擺脫這個問題

service mongodb stop 
rm /mnt-data/data/mongodb/mongod.lock 
mongod –repair --dbpath=/mnt-data/data/mongodb/ 
service mongodb start 

請給我建議我應該怎麼做?

LOG的mongod的-Repair

Fri Aug 23 12:56:36.617 [initandlisten] MongoDB starting : pid=16997 port=27017 
dbpath=/mnt-data/data/mongodb/ 64-bit host= 
Fri Aug 23 12:56:36.618 [initandlisten] db version v2.4.5 
Fri Aug 23 12:56:36.618 [initandlisten] git version: 
Fri Aug 23 12:56:36.618 [initandlisten] build info: Linux 
Fri Aug 23 12:56:36.618 [initandlisten] allocator: tcmalloc 
Fri Aug 23 12:56:36.618 [initandlisten] options: { dbpath: "/mnt-data/data/mongo 
db/", repair: true } 
Fri Aug 23 12:56:36.625 [initandlisten] **** 
Fri Aug 23 12:56:36.625 [initandlisten] **** 
Fri Aug 23 12:56:36.625 [initandlisten] need to upgrade database jf_db with pdfi 
le version 4.5, new version: 4.5 
Fri Aug 23 12:56:36.625 [initandlisten]   starting upgrade 
Fri Aug 23 12:56:36.625 [initandlisten] jf_db repairDatabase jf_db 
Fri Aug 23 12:56:36.626 [initandlisten] jf_db Cannot repair database jf_db havi 
ng size: 12829327360 (bytes) because free disk space is: 3514216448 (bytes) 
Fri Aug 23 12:56:36.626 [initandlisten] jf_db Assertion failure doDBUpgrade(db 
Name , errmsg , h) src/mongo/db/db.cpp 353 
0xdd9e31 0xd9b04d 0x6d3116 0x6d6e88 0x6d74cd 0x6ddfb0 0x6dfc09 0x7f8ee2ba976d 0x 
6cf979 
mongod(_ZN5mongo15printStackTraceERSo+0x21) [0xdd9e31] 
mongod(_ZN5mongo12verifyFailedEPKcS1_j+0xfd) [0xd9b04d] 
mongod() [0x6d3116] 
mongod(_ZN5mongo14_initAndListenEi+0x5d8) [0x6d6e88] 
mongod(_ZN5mongo13initAndListenEi+0x1d) [0x6d74cd] 
mongod() [0x6ddfb0] 
mongod(main+0x9) [0x6dfc09] 
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed) [0x7f8ee2ba976d] 
mongod(__gxx_personality_v0+0x499) [0x6cf979] 
Fri Aug 23 12:56:36.629 [initandlisten] exception in initAndListen: 0 assertion 
src/mongo/db/db.cpp:353, terminating 
Fri Aug 23 12:56:36.629 dbexit: 
Fri Aug 23 12:56:36.629 [initandlisten] shutdown: going to close listening socke 
ts... 
Fri Aug 23 12:56:36.629 [initandlisten] shutdown: going to flush diaglog... 
Fri Aug 23 12:56:36.629 [initandlisten] shutdown: going to close sockets... 
Fri Aug 23 12:56:36.629 [initandlisten] shutdown: waiting for fs preallocator... 
Fri Aug 23 12:56:36.629 [initandlisten] shutdown: closing all files... 
Fri Aug 23 12:56:36.631 [initandlisten] closeAllFiles() finished 
Fri Aug 23 12:56:36.631 [initandlisten] shutdown: removing fs lock... 
Fri Aug 23 12:56:36.631 dbexit: really exiting now 
+0

mongod日誌說什麼? – Ross

+0

等待我正在更新我的問題中的日誌 –

+0

似乎需要釋放一些磁盤空間才能運行修復 – Ross

回答

0

您需要添加相當多的磁盤空間。我發現維修從2x datasize運行到50x datasize - 取決於數據損壞的程度。

相關問題