2014-12-01 103 views
0

我的Mac(OSX 9)有一個電源閃爍,當重新啓動時,我有一個在Mongo中的數據庫是完全不可恢復的。我正在使用dbdb和logpath指定選項的每個目錄的db,並且能夠恢復除一個dbs之外的所有目錄。這是來自不可恢復的日誌。任何想法都會有所幫助 - 我已經運行 - 修復並刪除零結果的鎖定文件。MongoDB不可恢復的故障

日誌文件:

2014-12-01T09:40:40.607-0700 [initandlisten] MongoDB starting : pid=1273 port=27017 dbpath=/mongo/dbs/ 64-bit host=bbcoms-imac-2.body.local 
2014-12-01T09:40:40.607-0700 [initandlisten] 
2014-12-01T09:40:40.607-0700 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000 
2014-12-01T09:40:40.608-0700 [initandlisten] db version v2.6.5 
2014-12-01T09:40:40.608-0700 [initandlisten] git version: nogitversion 
2014-12-01T09:40:40.608-0700 [initandlisten] build info: Darwin minimavericks.local 13.4.0 Darwin Kernel Version 13.4.0: Sun Aug 17 19:50:11 PDT 2014; root:xnu-2422.115.4~1/RELEASE_X86_64 x86_64 BOOST_LIB_VERSION=1_49 
2014-12-01T09:40:40.608-0700 [initandlisten] allocator: tcmalloc 
2014-12-01T09:40:40.608-0700 [initandlisten] options: { repair: true, storage: { dbPath: "/mongo/dbs/", repairPath: "/mongo/db" } } 
2014-12-01T09:40:40.608-0700 [initandlisten] exception in initAndListen: 12590 repairpath (/mongo/db) does not exist, terminating 
2014-12-01T09:40:40.608-0700 [initandlisten] dbexit: 
2014-12-01T09:40:40.608-0700 [initandlisten] shutdown: going to close listening sockets... 
2014-12-01T09:40:40.608-0700 [initandlisten] shutdown: going to flush diaglog... 
2014-12-01T09:40:40.609-0700 [initandlisten] shutdown: going to close sockets... 
2014-12-01T09:20:58.339-0700 [clientcursormon] mapped (incl journal view):2176 
2014-12-01T09:20:58.339-0700 [clientcursormon] connections:1 
2014-12-01T09:25:58.390-0700 [clientcursormon] mem (MB) res:41 virt:4655 
2014-12-01T09:25:58.390-0700 [clientcursormon] mapped (incl journal view):2176 
2014-12-01T09:25:58.390-0700 [clientcursormon] connections:1 
2014-12-01T09:28:53.518-0700 [conn1] end connection 127.0.0.1:50225 (0 connections now open) 
2014-12-01T09:30:55.153-0700 [initandlisten] connection accepted from 127.0.0.1:50411 #3 (1 connection now open) 
2014-12-01T09:30:57.586-0700 [conn3] command admin.$cmd command: listDatabases { listDatabases: 1.0 } keyUpdates:0 numYields:0 locks(micros) R:3 W:105826 r:14 reslen:337 106ms 
2014-12-01T09:30:58.313-0700 [TTLMonitor] articles.system.indexes Assertion failure isOk() src/mongo/db/storage/extent.h 80 
2014-12-01T09:30:58.316-0700 [TTLMonitor] articles.system.indexes 0x1010665aa 0x101011135 0x100ffdbf2 0x100e1ca0c 0x100e4d4bc 0x100977b13 0x100ad7187 0x100cfdbcb 0x100ce5e6d 0x100b7d0b7 0x100b85055 0x100b852bb 0x1008dae1b 0x1008bee8a 0x100b854f1 0x100e50be6 0x100e4fe07 0x101000606 0x10109f2a1 0x7fff84fd0899 
0 mongod        0x00000001010665aa _ZN5mongo15printStackTraceERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEE + 58 
1 mongod        0x0000000101011135 _ZN5mongo10logContextEPKc + 453 
2 mongod        0x0000000100ffdbf2 _ZN5mongo12verifyFailedEPKcS1_j + 626 
3 mongod        0x0000000100e1ca0c _ZNK5mongo13ExtentManager9getExtentERKNS_7DiskLocEb + 108 
4 mongod        0x0000000100e4d4bc _ZN5mongo12FlatIteratorC2EPKNS_10CollectionERKNS_7DiskLocERKNS_20CollectionScanParams9DirectionE + 92 
5 mongod        0x0000000100977b13 _ZNK5mongo10Collection11getIteratorERKNS_7DiskLocEbRKNS_20CollectionScanParams9DirectionE + 115 
6 mongod        0x0000000100ad7187 _ZN5mongo14CollectionScan4workEPm + 519 
7 mongod        0x0000000100cfdbcb _ZN5mongo12PlanExecutor7getNextEPNS_7BSONObjEPNS_7DiskLocE + 283 
8 mongod        0x0000000100ce5e6d _ZN5mongo11newRunQueryERNS_7MessageERNS_12QueryMessageERNS_5CurOpES1_ + 3101 
9 mongod        0x0000000100b7d0b7 _ZN5mongo16assembleResponseERNS_7MessageERNS_10DbResponseERKNS_11HostAndPortE + 2663 
10 mongod        0x0000000100b85055 _ZN5mongo14DBDirectClient4callERNS_7MessageES2_bPNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEE + 165 
2014-12-01T09:40:40.609-0700 [initandlisten] shutdown: waiting for fs preallocator... 
2014-12-01T09:40:40.609-0700 [initandlisten] shutdown: closing all files... 
2014-12-01T09:40:40.610-0700 [initandlisten] closeAllFiles() finished 
2014-12-01T09:40:40.610-0700 [initandlisten] dbexit: really exiting now 

回答

0

我看到有程度的斷言失敗的錯誤,但是上面,你有行

2014-12-01T09:40:40.608-0700 [initandlisten] options: { repair: true, storage: { dbPath: "/mongo/dbs/", repairPath: "/mongo/db" } } 
2014-12-01T09:40:40.608-0700 [initandlisten] exception in initAndListen: 12590 repairpath (/mongo/db) does not exist, terminating 

如此看來你沒有提供有效的修復路徑時修復。你可以啓動服務器嗎?這是mongod複製集的一部分嗎?如果服務器可以啓動,您可以對壞數據庫中的集合運行db.collection.validate嗎?怎麼了?

+0

謝謝,但我永遠無法啓動服務器。我最終不得不將這個特定的數據庫發送出去。不是最好的解決方案,但我找不到任何允許使用該數據操作的東西。有點可怕。 – RandallShanePhD 2014-12-24 16:10:31

+0

另一個評論在這裏(2年後),但我最近有類似的問題。您可以通過將數據文件直接移動到新實例來恢復數據文件。將* .0,* .1等和* .ns文件移動到新的數據庫目錄路徑中,然後啓動mongo,它會選取它們。如果使用config設置:directoryPerDB:true,它將提供選擇要恢復的數據庫的能力。請記住,您的數據庫路徑位於存儲部分的dbPath下的配置文件中。 – RandallShanePhD 2017-04-27 15:24:40