以前我的磁盘空间快用完了,mongodb停止工作。然后我增加了磁盘大小,但mongodb无法开始工作。
虽然启用了日志记录,但我已经执行了以下命令
sudo-u mongodb mongod--dbpath/var/lib/mongodb/--repair
Fri Nov 30 13:29:36 [initandlisten] build index bd_production.news { _id: 1 }
Fri Nov 30 13:29:36 [initandlisten] fastBuildIndex dupsToDrop:0
Fri Nov 30 13:29:36 [initandlisten] build index done. scanned 2549 total
records. 0.008 secs
Fri Nov 30 13:29:36 [initandlisten] bd_production.change_sets
Assertion failure isOk() src/mongo/db/pdfile.h 360
0x879d86a 0x85a9835 0x85e441e 0x84caa02 0x84c7d19 0x8229b5a 0x822bfd8
0x875bd51 0x875f0c7 0x8760df4 0x83e6523 0x83b6c3b 0x8753b07 0x83b92bf
0x8827ab7 0x882a53b 0x882d4bf 0x882d691 0x85ed280 0x81719dc
mongod(_ZN5mongo15printStackTraceERSo+0x2a) [0x879d86a]
mongod(_ZN5mongo10logContextEPKc+0xa5) [0x85a9835]
...
...
...
... some error msg
Fri Nov 30 13:29:36 [initandlisten] assertion 0 assertion
src/mongo/db/pdfile.h:360 ns:bd_production.change_sets
query:{}
Fri Nov 30 13:29:36 [initandlisten] problem detected during query over
bd_production.change_sets : { $err: "assertion
src/mongo/db/pdfile.h:360" }
Fri Nov 30 13:29:36 [initandlisten] query
bd_production.change_sets ntoreturn:0 keyUpdates:0 exception:
assertion src/mongo/db/pdfile.h:360 reslen:71 197ms
Fri Nov 30 13:29:36 [initandlisten] exception in initAndListen: 13106
nextSafe(): { $err: "assertion src/mongo/db/pdfile.h:360" }, terminating
Fri Nov 30 13:29:36 dbexit:
...
...
如何修复特定的集合(change_set)或数据库?
UPDATE:当我运行mongodump时,--repair for change_set集合,我得到以下错误消息:
Tue Dec 4 10:45:21 [tools] backwards extent pass
Tue Dec 4 10:45:21 [tools] extent loc: 5:1181e000
Tue Dec 4 10:45:21 [FileAllocator] allocating new datafile /home/suvankar/dd/bd_production.5, filling with zeroes...
Tue Dec 4 10:45:21 [FileAllocator] creating directory /home/suvankar/dd/_tmp
Tue Dec 4 10:45:21 [FileAllocator] done allocating datafile /home/suvankar/dd/bd_production.5, size: 511MB, took 0.042 secs
Tue Dec 4 10:45:21 [tools] warning: Extent not ok magic: 0 going to try to continue
Tue Dec 4 10:45:21 [tools] length:0
Tue Dec 4 10:45:21 [tools] ERROR: offset is 0 for record which should be impossible
Tue Dec 4 10:45:21 [tools] wrote 1 documents
Tue Dec 4 10:45:21 [tools] extent loc: 0:0
Tue Dec 4 10:45:21 [tools] ERROR: invalid extent ofs: 0
Tue Dec 4 10:45:21 [tools] 5 objects
Tue Dec 4 10:45:21 dbexit:
Tue Dec 4 10:45:21 [tools] shutdown: going to close listening sockets...
Tue Dec 4 10:45:21 [tools] shutdown: going to flush diaglog...
Tue Dec 4 10:45:21 [tools] shutdown: going to close sockets...
Tue Dec 4 10:45:21 [tools] shutdown: waiting for fs preallocator...
Tue Dec 4 10:45:21 [tools] shutdown: lock for final commit...
如果mongod
with repair没有执行此操作,那么它就会陷入一种损坏程度,无法修复或解决启动有效且正确的数据库文件集的问题。
您可以使用repair运行mongodump
,这在试图避免损坏方面更加激进,并且不启动mongod
实例(因此不需要文件正确才能继续)。
mongodump --repair --dbpath /var/lib/mongodb/ <other options here>
但是,请注意,由于它试图在损坏中进行路由的方式,最终可能会得到一个文档的多个副本。对于MongoRestore
的工作方式,这不是一个问题,但根据损坏的级别,最终会得到比预期大得多的转储文件。在一个非常极端的情况下,我曾经看到产生了10倍的数据,尽管这是例外而不是规则。
一旦您将所有内容都丢弃到满意的程度,就开始mongod
clean并重新导入以恢复到良好状态。
我使用这个查询来查找状态(“Isactive”:false);true或false;还根据状态查找年龄,最后一次计数总额 跟随错误 聚合失败 _geterrorwithcode@src/mongo/shell/utils.js:25:13
我是Docker的新手,同时运行Docker文件**我的Docker文件** 来自Microsoft/DotNet:2.2.0-Preview1-AspNetCore-Runtime作为基础 工作目录/app 来自Microsoft/DotNet:2.2.100-Preview1-SDK AS Build workdir/dineshvisualstudio/autofac-interceptor
我复制并制作一个文件。 当我对文件进行分类时,我得到: 然后我并立即显示: 但是当我再次使用cat键盘2时,我得到: 用sudo测试,用's/fr/us/'测试 我理解错了什么吗?sed应该写入文件还是需要通过管道覆盖原始文件?非常感谢。 版本:
我使用android studio preview beta 4,打开project it build时从https://github.com/drklo/Telegram获得Telegram源代码,并出现以下错误: 我使用最新的NDK android-ndk-r16-beta1-windows-x86。add-application.mk的第100行中有错误,它是: 所以我使用的add-appl
我使用了MongoDB提供的基本自动完成示例。不幸的是,它导致服务器端出现异常 ref:https://docs . atlas . MongoDB . com/reference/atlas-search/autocomplete/ org . graalvm . polyglot . polyglotexception:命令失败,出现错误40324(位置40324):“服务器localhost
我写了一个不可靠的模糊测试。我添加了一些调试代码,但现在我想运行测试,直到它失败,这样我就可以收集调试输出。 我已经设置了测试,因此可以使用: 我目前的解决方案是编写一个脚本: 然后使用它: 有更简单的解决方案吗?