分片集合时发生MongoDB错误:未找到ns

问题描述 投票:0回答:1

我已经设置了用于测试分片功能目的的简单服务器配置,但出现上述错误。

我的配置非常简单:一台配置服务器,一台分片服务器和一台mongos(分别位于127.0.0.1:27019、127.0.0.1:27018、127.0.0.1:27017)。

在我尝试对集合进行分片之前,一切看起来都工作良好,该命令为我提供了以下内容:

sh.shardCollection("test.test", { "test" : 1 } )
{
    "ok" : 0,
    "errmsg" : "ns not found",
    "code" : 26,
    "codeName" : "NamespaceNotFound",
    "operationTime" : Timestamp(1590244259, 5),
    "$clusterTime" : {
        "clusterTime" : Timestamp(1590244259, 5),
        "signature" : {
            "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
            "keyId" : NumberLong(0)
        }
    }
}

配置服务器和分片服务器的输出未显示错误:

2020-05-23T10:39:46.629-0400 I  SHARDING [conn11] about to log metadata event into changelog: { _id: "florent-Nitro-AN515-53:27018-2020-05-23T10:39:46.629-0400-5ec935b2bec982e313743b1a", server: "florent-Nitro-AN515-53:27018", shard: "rs0", clientAddr: "127.0.0.1:58242", time: new Date(1590244786629), what: "shardCollection.start", ns: "test.test", details: { shardKey: { test: 1.0 }, collection: "test.test", uuid: UUID("152add6f-e56b-40c4-954c-378920eceede"), empty: false, fromMapReduce: false, primary: "rs0:rs0/127.0.0.1:27018", numChunks: 1 } }
2020-05-23T10:39:46.620-0400 I  SHARDING [conn25] distributed lock 'test' acquired for 'shardCollection', ts : 5ec935b235505bcc59eb60c5
2020-05-23T10:39:46.622-0400 I  SHARDING [conn25] distributed lock 'test.test' acquired for 'shardCollection', ts : 5ec935b235505bcc59eb60c7
2020-05-23T10:39:46.637-0400 I  SHARDING [conn25] distributed lock with ts: 5ec935b235505bcc59eb60c7' unlocked.
2020-05-23T10:39:46.640-0400 I  SHARDING [conn25] distributed lock with ts: 5ec935b235505bcc59eb60c5' unlocked.

当然,集合存在于主分片上:

rs0:PRIMARY> db.test.stats()
{
    "ns" : "test.test",
    "size" : 216,
    "count" : 6,
    "avgObjSize" : 36,
    "storageSize" : 36864,
    "capped" : false,
    ...
}

我不知道这里可能出什么问题,非常感谢您的帮助:)

mongodb sharding
1个回答
0
投票

[当某些路由器对分片群集中存在哪些数据库/集合有过时想法时,有时会发生此错误。

尝试在每个mongos上运行https://docs.mongodb.com/manual/reference/command/flushRouterConfig/(即,依次按顺序连接到每个mongos并在其上运行此命令)。

© www.soinside.com 2019 - 2024. All rights reserved.