1

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

8 月 15 日星期三 10:08:04 [initandlisten] MongoDB 开始:pid=1447 port=27017 dbpath=/var/lib/mongodb/ 32-bit

** 注意:当使用 32 位 MongoDB 时,您被限制为大约 2 GB 的数据 ** 参见http://blog.mongodb.org/post/137788967/32-bit-limitations ** 使用 --dur,限制较低

8 月 15 日星期三 10:08:04 [initandlisten] db 版本 v1.8.3,pdfile 版本 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 Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_37 Wed Aug 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 Wed Aug 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] Wed Aug 15 10 :08:04 [initandlisten] 断言 0 断言 db/pdfile.h:259 ns:md.system.namespaces query:{} Wed Aug 15 10:08:04 [initandlisten] Assertion: 10290:bad system.namespaces object { $err:" assertion 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+0x6c)bad system.namespaces object { $err: "assertion 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(bad system.namespaces object { $err: "assertion 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(} 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(} 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(mongod(_ZN5mongo14_initAndListenEiPKc+0x4b3) [0x852e733] mongod(mongod(_ZN5mongo14_initAndListenEiPKc+0x4b3) [0x852e733] mongod(ZN5mongo13initAndListenEiPKc+0x2c) [0x852f59c] mongod(main+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 object { $err: "assertion db/pdfile.h:259 " },终止 8 月 15 日星期三 10:08:04 dbexit:8 月 15 日星期三 10:08:04 [initandlisten] 关闭:将关闭侦听套接字... 8 月 15 日星期三 10:08:04 [initandlisten] 关闭:将刷新诊断日志... 8 月 15 日星期三 10:08:04 [initandlisten] 关闭:要关闭套接字... 8 月 15 日星期三 10:08:04 [initandlisten] 关闭:等待 fs 预分配器... 10 年 8 月 15 日星期三: 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 文件已损坏。有什么办法可以修复数据库?

谢谢

4

1 回答 1

1

如果维修不起作用,那么不幸的是你运气不好。

我假设您没有启用日记功能或任何备份。我强烈建议您在启用日志的情况下运行,并遵循此处列出的备份策略之一。LVM 快照很容易实现,相当快速和可靠。

你最好在 64 位系统上运行 MongoDB。32 位将您限制为2gb 的数据。你说你“空间不足”?

于 2012-08-15T12:23:50.037 回答