【发布时间】:2016-06-11 02:38:36
【问题描述】:
我尝试在健康但大型 MongoDB 数据库上从 mongo shell 执行 db.repairDatabase() 命令。它运行了大约 10 个小时,但仍未完成。不管好坏,我按 Ctrl-C 取消它。
集群似乎处于某种锁定状态。像“show dbs”这样的命令都失败并显示“操作超时”:
mongos> show dbs
2016-06-10T09:38:10.179-0400 E QUERY [thread1] Error: listDatabases failed:{ "code" : 50, "ok" : 0, "errmsg" : "Operation timed out" } :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
Mongo.prototype.getDBs@src/mongo/shell/mongo.js:62:1
shellHelper.show@src/mongo/shell/utils.js:760:19
shellHelper@src/mongo/shell/utils.js:650:15
@(shellhelp2):1:1
在我杀死 db.repairDatabase() 之后,这种情况已经持续了大约 10 个小时。
从中恢复的正确方法是什么?
我的集群信息:我到处都在运行 MongoDB 3.2.5。我有 3 个配置服务器,11 个分片,每个分片是一个由 2 个节点和一个仲裁器组成的副本集。我有大约 40 个节点运行 mongos 实例。 3 个配置服务器仍然是 3.0 风格(尚未升级到副本集)。
【问题讨论】:
标签: mongodb