我的mongodb集合被删除了。我如何查看发生了什么事?

19 浏览
0 Comments

我的mongodb集合被删除了。我如何查看发生了什么事?

我有一个集合,它会自动填充以模拟用户输入。过去我在其中有32000多个文档,现在只剩下2000个。我的集合昨天某个时间被删除了,我不知道发生了什么。\n幸运的是,每个文档上都有一个时间戳,所以我可以准确地看到何时发生的(最旧的文档只有一天,每两分钟就有新的文档)。我该如何查看发生了什么?\n很可能是通过一个脚本完成的,所以它不会出现在.dbshell中,而且该文件最多只能显示99行。是否有关于对数据库的任何操作的历史记录,而不仅仅是手动的操作?\n有办法知道是什么导致了这个问题吗?\n额外信息:目前只有我可以访问数据库,而且我只有一个可能删除我的表的脚本,我已经很久没有碰它了。

0
0 Comments

在StackOverflow上有一个回答,解决方法是通过以下方式启动mongod:

mongod --profile=1 --slowms=1 &

这样可以启用分析,并将“慢查询”的阈值设置为1毫秒,使所有查询都被记录为“慢查询”到文件`/var/log/mongodb/mongodb.log`。然后可以使用以下命令持续输出日志:

tail -f /var/log/mongodb/mongodb.log

以下是一个示例日志:

Mon Mar 4 15:02:55 [conn1] query dendro.quads query: { graph: "u:http://example.org/people" } ntoreturn:0 ntoskip:0 nscanned:6 keyUpdates:0 locks(micros) r:73163 nreturned:6 reslen:9884 88ms

推测之前没有启用分析,所以可以追踪未来的错误,但不能追踪这个错误。

0