MongoDB 分片命令

MongoDB 分片命令

分片是一种将数据分布在不同机器上的方法。MongoDB可以使用分片来支持在非常庞大的数据集和高吞吐量操作上的部署。

MongoDB 分片命令

MongoDB sh.addShard() 命令

使用此命令添加分片的复制集到分片集群。如果我们将其添加到集群的分片中,它会影响数据块的平衡。它开始转移数据块以实现集群的平衡。

/<:port>,<:port>, …

语法:

sh.addShard("<replica_set>/<hostname><:port>")

示例:

sh.addShard("repl0/mongodb3.example.net:27327")

输出:

MongoDB 分片命令

它将添加一个分片,用于指定副本集的名称和至少一个副本集成员的主机名。

MongoDB sh.addShardTag()命令

该命令在分片中使用标签或标识符进行支持。 MongoDB 使用这些标识符将处于标记范围内的线程发送到指定的分片。

示例:

sh.addShardTag("shard0000", "NYC")
sh.addShardTag("shard0001", "LAX")
sh.addShardTag("shard0002", "NRT")

它将为三个不同的片段添加三个标签。

MongoDB 分片命令

MongoDB sh.addShardToZone(shard, zone) 命令

此命令将指定的分片添加到指定的分区。此命令在3.4版本中引入。只有在分区范围内的那些块才会被分配到这些分片上。

示例:

sh.addShardToZone("shard0000", "JFK")
sh.addShardToZone("shard0001", "LAX")
sh.addShardToZone("shard0002", "NRT")

// 将LGA与shard0000关联起来:

sh.addShardToZone("shard0000", "LGA")

// shard0000与LGA区域和JFK区域都相关联。

MongoDB的sh.addTagRange(namespace, min, max, tag)命令

使用此命令,将分片键值范围附加到分片标签。区域范围始终排除上限,并包括下限。

示例:

我们有一个分片键{state: 1, zip: 1},

下面的示例生成一个特定的标签范围,覆盖加利福尼亚州的邮政编码:

sh.addTagRange( "statedb.collection",
                { state: "CA", zip: MinKey },
                { state: "CA", zip: MaxKey },
                "NY"
              )

MongoDB sh.disableBalancing(name_space) 命令

使用该命令可以禁用参数中指定的分片。对于相同集群中的其他分片集合,它不会对分块的平衡产生任何影响。

MongoDB sh.enableBalancing(namespace) 命令

使用该命令可以启用参数中指定的分片。对于相同集群中的其他分片集合,它不会对分块的平衡产生任何影响。

MongoDB sh.disableAutoSplit 命令

该命令会从配置设置集合中移除自动分割标志。当分片集群启用了自动分割选项后,MongoDB会根据分片键值自动将其分割成分块。

只能在连接到指定mongos实例的mongo shell中执行sh.disableAutoSplit()命令。如果在mongod实例上运行此命令,将返回错误。

MongoDB updateZoneKeyRange 命令

使用此命令可以创建或删除分片键值范围与区域之间的关系。使用db.runCommand( { } ) 方法来运行updateZoneKeyRange。您必须在admin数据库上运行addShardToZone命令。

语法:

{
  updateZoneKeyRange: <string>,
  min: <document>,
  max: <document>,
  zone: <string> | <null>
}

示例:

下面的示例在alpha区域创建了一个下界为1、上界为10的范围:

admin = db.getSiblingDB("admin")
admin.runCommand(
   {
      updateZoneKeyRange : "exampledb.collection",
      min : { a : 1 },
      max : { a : 10 },
      zone : "alpha"
   }
)

以下查询通过将zone字段设置为null来移除先前创建的范围。

admin = db.getSiblingDB("admin")
admin.runCommand(
   {
      updateZoneKeyRange : "exampledb.collection",
      min : { a : 1 },
      max : { a : 10 },
      zone : null
   }
)

现在检查你的分片的状态:

MongoDB 分片命令

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程