Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb Mongo分片问题-此数据库未启用分片_Mongodb - Fatal编程技术网

Mongodb Mongo分片问题-此数据库未启用分片

Mongodb Mongo分片问题-此数据库未启用分片,mongodb,Mongodb,我正试图在mongoDB上构建一个分片集群。但是我在启动db分片或集合分片时遇到了一些问题 问题是,我已经成功地将分片主机添加到分片集中。你可以在这里看到 mongos> use admin switched to db admin mongos> db.runCommand( { listshards : 1 } ); { "shards" : [ { "_id" : "rs1", "host" : "rs1/

我正试图在mongoDB上构建一个分片集群。但是我在启动db分片或集合分片时遇到了一些问题 问题是,我已经成功地将分片主机添加到分片集中。你可以在这里看到

mongos> use admin
switched to db admin
mongos> db.runCommand( { listshards : 1 } );
{
    "shards" : [
        {
            "_id" : "rs1",
            "host" : "rs1/mongodb1:10001,mongodb2:10001,mongodb3:10001"
        },
        {
            "_id" : "rs2",
            "host" : "rs2/mongodb1:10002,mongodb2:10002,mongodb3:10002"
        },
        {
            "_id" : "rs3",
            "host" : "rs3/mongodb1:10003,mongodb2:10003,mongodb3:10003"
        }
    ],
    "ok" : 1
}
那里一切都很好。。 此外,在配置数据库中,我对数据库进行了切分,如您在此处所见

mongos> use config
switched to db config
mongos> db.databases.find()
{ "_id" : "admin", "partitioned" : false, "primary" : "config" }
{ "_id" : "articles", "partitioned" : true, "primary" : "rs1" }
mongos> use articles switched to db articles 
mongos> sh.shardCollection("articles.zip",{"id_":1}) { "ok" : 0, "errmsg" : "already sharded" }
正如您在这里看到的,正在对db项目进行分区,主要主机是副本集1…即rs1

现在。。。当我运行sh.status时…看看会发生什么

mongos> use articles
mongos> sh.status()
printShardingStatus: this db does not have sharding enabled. be sure you are connecting to a mongos from the shell and not to a mongod.
我也有一个收集碎片,你可以在这里看到

mongos> use config
switched to db config
mongos> db.databases.find()
{ "_id" : "admin", "partitioned" : false, "primary" : "config" }
{ "_id" : "articles", "partitioned" : true, "primary" : "rs1" }
mongos> use articles switched to db articles 
mongos> sh.shardCollection("articles.zip",{"id_":1}) { "ok" : 0, "errmsg" : "already sharded" }
我不知道为什么会这样,因为一切都很好


数据库也没有被分区。。。我的意思是我没有rs2或rs3的任何数据。。。所以它显然不起作用了这个问题解决了。。这是由于副本集配置错误造成的。。rs1上的第三个节点设置不正确。。因此,当您收到此错误时,请注意您是否已对集合进行了切分。是的。。。该集合称为zip。。。我将编辑这篇文章,这样当您键入此
db.adminCommand({enableSharding:“articles”})
您会得到什么?你的拉链里有多少件收藏品?我之所以问这个问题,是因为可能会发生这样的情况:根据_id和集合大小,所有文档都可以位于一个碎片中。@Hakan mongos>db.adminCommand({enableSharding:“articles”}){“ok”:0,“errmsg”:“ready enabled”}日志文件中写入的内容可能有助于发现问题。