MongoDB Unclean Shutdown - 无法修复

时间:2012-08-15 11:50:37

标签: mongodb

我在Amazon AWS上运行MongoDB,直到有一天它用完了空间。然后,数据库完全无法访问,我试图关闭数据库。重新启动服务器并安装更大的磁盘后,无法启动MongoDB。 我试图修复数据库,错误如下所示:

  

Wed Aug 15 10:08:04 [initandlisten] MongoDB开始:pid = 1447 port = 27017 dbpath = / var / lib / mongodb / 32-bit

     

**注意:使用MongoDB 32位时,限制为大约2千兆字节的数据   **见http://blog.mongodb.org/post/137788967/32-bit-limitations   **与--dur,限制较低

     

Wed Aug 15 10:08:04 [initandlisten] db version v1.8.3,pdfile version 4.5   8月15日星期三10:08:04 [initandlisten] git版本:c206d77e94bc3b65c76681df5a6b605f68a2de05   8月15日星期三10:08:04 [initandlisten]构建系统信息:Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen#1 SMP Fri 2月15日12:39:36 EST 2008 i686 BOOST_LIB_VERSION = 1_37   8月15日星期三10:08:04 [initandlisten] **   8月15日星期三10:08:04 [initandlisten] **   8月15日星期三10:08:04 [initandlisten]需要使用pdfile版本559903.1345021735升级数据库md,新版本:4.5   8月15日星期三10:08:04 [initandlisten]开始升级   8月15日星期三10:08:04 [initandlisten] md repairDatabase md   8月15日星期三10:08:04 [initandlisten] md.system.namespaces断言失败isOk()db / pdfile.h 259   0x817c27b 0x819121e 0x83cf525 0x83d6bec 0x83f5420 0x82a4fb7 0x83f8680 0x83fcece 0x8401358 0x8401e29 0x8402abd 0x828f755 0x83b3d67 0x83b931c 0x83bb3df 0x81ce25f 0x81ae714 0x8380f31 0x83831ba 0x83d4faf    mongod(_ZN5mongo12sayDbContextEPKc + 0xcb)[0x817c27b]    mongod(_ZN5mongo8assertedEPKcS1_j + 0x12e)[0x819121e]    mongod(_ZN5mongo11DataFileMgr7findAllEPKcRKNS_7DiskLocE + 0x7a5)[0x83cf525]    mongod(_ZN5mongo13findTableScanEPKcRKNS_7BSONObjERKNS_7DiskLocE + 0x13c)[0x83d6bec]    mongod(_ZNK5mongo9QueryPlan9newCursorERKNS_7DiskLocEi + 0x830)[0x83f5420]    mongod(_ZN5mongo11UserQueryOp5_initEv + 0x437)[0x82a4fb7]    mongod(_ZN5mongo12QueryPlanSet6Runner6initOpERNS_7QueryOpE + 0x110)[0x83f8680]    mongod(_ZN5mongo12QueryPlanSet6Runner3runEv + 0x2ee)[0x83fcece]    mongod(_ZN5mongo12QueryPlanSet5runOpERNS_7QueryOpE + 0x2e8)[0x8401358]    mongod(_ZN5mongo16MultiPlanScanner9runOpOnceERNS_7QueryOpE + 0x59)[0x8401e29]    mongod(_ZN5mongo16MultiPlanScanner5runOpERNS_7QueryOpE + 0x2d)[0x8402abd]    mongod(_ZN5mongo8runQueryERNS_7MessageERNS_12QueryMessageERNS_5CurOpES1_ + 0x1575)[0x828f755]    mongod()[0x83b3d67]    mongod(_ZN5mongo16assembleResponseERNS_7MessageERNS_10DbResponseERKNS_8SockAddrE + 0x70c)[0x83b931c]    mongod(_ZN5mongo14DBDirectClient4callERNS_7MessageES2_bPSs + 0x7f)[0x83bb3df]    mongod(_ZN5mongo14DBClientCursor4initEv + 0x15f)[0x81ce25f]    mongod(_ZN5mongo12DBClientBase5queryERKSsNS_5QueryEiiPKNS_7BSONObjEii + 0x2a4)[0x81ae714]    mongod(_ZN5mongo6Cloner2goEPKcRSsRKSsbbbb + 0x451)[0x8380f31]    mongod(_ZN5mongo9cloneFromEPKcRSsRKSsbbbb + 0x5a)[0x83831ba]    mongod(_ZN5mongo14repairDatabaseESsRSsbb + 0x38f)[0x83d4faf]   8月15日星期三10:08:04 [initandlisten]断言0断言db / pdfile.h:259 ns:md.system.namespaces query:{}   8月15日星期三10:08:04 [initandlisten]断言:10290:错误的system.namespaces对象{$ err:“断言db / pdfile.h:259”}   0x819045e 0x8381181 0x83831ba 0x83d4faf 0x852a30c 0x852b217 0x852e733 0x852f59c 0x85366bb 0xb74a4ce7 0x810b551    mongod(_ZN5mongo11msgassertedEiPKc + 0x15e)[0x819045e]    mongod(_ZN5mongo6Cloner2goEPKcRSsRKSsbbbb + 0x6a1)[0x8381181]    mongod(_ZN5mongo9cloneFromEPKcRSsRKSsbbbb + 0x5a)[0x83831ba]    mongod(_ZN5mongo14repairDatabaseESsRSsbb + 0x38f)[0x83d4faf]    mongod(_ZN5mongo11doDBUpgradeERKSsSsPNS_14DataFileHeaderE + 0x6c)[0x852a30c]    mongod()[0x852b217]    mongod(_ZN5mongo14_initAndListenEiPKc + 0x4b3)[0x852e733]    mongod( ZN5mongo13initAndListenEiPKc + 0x2c)[0x852f59c]    mongod(主要是+ 0x6bdb)[0x85366bb]    /lib/libc.so.6(_libc_start_main+0xe7)[0xb74a4ce7]    mongod()[0x810b551]   8月15日星期三10:08:04 initAndListen中的[initandlisten]异常std :: exception:bad system.namespaces对象{$ err:“assertion db / pdfile.h:259”},终止   8月15日星期三10:08:04 dbexit:   8月15日星期三10:08:04 [initandlisten]关闭:关闭监听套接字......   8月15日星期三10:08:04 [initandlisten]关闭:要刷新diaglog ...   8月15日星期三10:08:04 [initandlisten]关闭:关闭套接字......   8月15日星期三10:08:04 [initandlisten] shutdown:等待fs preallocator ...   8月15日星期三10:08:04 [initandlisten]关闭:关闭所有文件...   8月15日星期三10:08:04 closeAllFiles()完成了   8月15日星期三10:08:04 [initandlisten]关闭:删除fs锁...   8月15日星期三10:08:04 dbexit:现在真的退出

我完全拥有所有* .number和* .ns文件。但似乎ns文件已损坏。我可以用任何方式修复数据库吗?

由于

1 个答案:

答案 0 :(得分:1)

如果修复不起作用,那么很遗憾你不幸。

我假设您没有启用日记功能或任何备份。我强烈建议您在启用日记功能的情况下运行,并遵循其中一项备注策略here。 LVM快照易于实现,相当快速和可靠。

最好在64位系统上运行MongoDB。 32位将您限制为2gb of data。你说你“没空间了”?