MongoDB-数据损坏-索引损坏?-BSONObj尺寸

MongoDB-数据损坏-索引损坏?-BSONObj尺寸,mongodb,Mongodb,我的MongoDB实例有一个大问题 我尝试运行的每个查询(即使是简单的查询,如find()、count()等)都会出现以下错误: exception: BSONObj size: 536871756 (0x2000034C) is invalid. Size must be between 0 and 16793600(16MB) First element: _id: ObjectId('5eaabac87fbaa8433bc16377')", 首先,我可以澄清它总是发生的,因此它

我的MongoDB实例有一个大问题

我尝试运行的每个查询(即使是简单的查询,如find()、count()等)都会出现以下错误:

exception: BSONObj size: 536871756 (0x2000034C) is invalid. Size must be between 0 and 16793600(16MB) First element: _id: ObjectId('5eaabac87fbaa8433bc16377')",
首先,我可以澄清它总是发生的,因此它不依赖于查询的复杂性。通过运行validate()函数,我得到了以下消息:

"ns" : db.Message",
"datasize" : 259023456,
"nrecords" : 114778,
"lastExtentSize" : 92585984,
"firstExtent" : "0:5000 ns:db-2020.Message",
"lastExtent" : "4:4169000 ns:db-2020.Message",
"extentCount" : 14,
"firstExtentDetails" : {
"loc" : "0:5000",
"xnext" : "0:a9000",
"xprev" : "null",
"nsdiag" : "db-2020.Message",
"size" : 8192,
"firstRecord" : "0:68b0",
"lastRecord" : "0:68b0"
},
"lastExtentDetails" : {
"loc" : "4:4169000",
"xnext" : "null",
"xprev" : "4:2000",
"nsdiag" : "db-2020.Message",
"size" : 92585984,
"firstRecord" : "4:76d48b0",
"lastRecord" : "4:76d38b0"
},
"deletedCount" : 54891,
"deletedSize" : 597699520,
"nIndexes" : 0,
"keysPerIndex" : {
},
"valid" : false,
"errors" : [
"bad pointer in deleted record list: 536870914:2e46b0 bucket: 5 k: 54795"
],
"warning" : "Some checks omitted for speed. use {full:true} option to do more thorough scan.",
"advice" : "ns corrupt. See http://dochub.mongodb.org/core/data-recovery",
"ok" : 1
因此,这似乎与数据存储和索引损坏有关

通过使用一些GUI,我恢复了大约11k行(文件中包含115k行),但我仍然不理解问题(或解决方案)

我所做的:

  • Mongoexport无法工作(CSV、JSON等)-当它到达 如果数据被破坏,它就会停止
  • Mongodump(即使使用--repair和--forceTableScan)也不起作用reIndex()不起作用-实际上,数据库中当前没有可用的索引
  • deleteOne()和类似选项不起作用。我试图匹配身份证,但什么也没发生。我也试过了 通过GUI浏览数据,但到达损坏的数据时停止
你还有其他想法吗?我需要恢复尽可能多的数据


格拉齐

如果您是付费客户,我建议使用官方支持渠道。否则重建节点或从备份还原。如果您是付费客户,我建议使用官方支持渠道。否则,重建节点或从备份中恢复。