Mongodb

在 MongoDB 分片集群上執行 sh.status() 命令時出現異常

  • November 22, 2018

我正在分sh.status()片 Mongo 集群的 mongos 實例上執行命令,但我遇到了異常。

mongos> sh.status()
assert: command failed: {
   "ok" : 0,
   "errmsg" : "error processing query: ns=config.mongosTree: ping $gt new Date(1542173873192)\nSort: {}\nProj: {}\n No query solutions",
   "code" : 2
} : aggregate failed
_getErrorWithCode@src/mongo/shell/utils.js:25:13
doassert@src/mongo/shell/assert.js:16:14
assert.commandWorked@src/mongo/shell/assert.js:290:5
DBCollection.prototype.aggregate@src/mongo/shell/collection.js:1312:5
printShardingStatus@src/mongo/shell/utils_sh.js:611:13
sh.status@src/mongo/shell/utils_sh.js:78:5
@(shell):1:1

2018-11-14T05:38:55.904+0000 E QUERY    [thread1] Error: command failed: {
   "ok" : 0,
   "errmsg" : "error processing query: ns=config.mongosTree: ping $gt new Date(1542173873192)\nSort: {}\nProj: {}\n No query solutions",
   "code" : 2
} : aggregate failed :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
doassert@src/mongo/shell/assert.js:16:14
assert.commandWorked@src/mongo/shell/assert.js:290:5
DBCollection.prototype.aggregate@src/mongo/shell/collection.js:1312:5
printShardingStatus@src/mongo/shell/utils_sh.js:611:13
sh.status@src/mongo/shell/utils_sh.js:78:5
@(shell):1:1

我在 ubuntu 16.04 平台上執行 Mongo 3.2。它在 ubuntu 14.04 平台上的 MongoDB 3.0 版上執行良好。sh.status()我已經重新安裝了所有東西,並在新機器上也試過了,除了命令,一切都很好。

謝謝。

這是因為在我的 mongo 配置伺服器中啟用了notablescan屬性。禁用後notablescan,命令工作正常。您可以notablescan通過執行此命令檢查狀態。

db.adminCommand( { getParameter: 1, notablescan: 1 } )

notablescan如果啟用,輸出將如下所示。

{
 "notablescan": true,
 "ok": 1
}

引用自:https://dba.stackexchange.com/questions/222490