rmdir.cn

分片集群管理 (sh.*)

分片集群配置与状态查看

语法

sh.<command>()

说明

MongoDB 分片集群将数据水平分布到多个分片上,实现超大数据量和超高吞吐量的横向扩展。通过 mongos 路由将命令分发给 sh.status()、sh.enableSharding()、sh.shardCollection() 等管理分片集群。

参数

  • sh.status()

    查看分片集群分布状态(数据分布、chunk 详情)

  • sh.enableSharding()

    对数据库启用分片

  • sh.shardCollection()

    对集合创建分片,指定 shard key

  • sh.addShard()

    向集群添加分片节点

  • sh.getBalancerState()

    查看均衡器是否开启

  • sh.startBalancer() / sh.stopBalancer()

    启动/停止 chunk 均衡器

  • sh.addShardToZone()

    将分片加入 Zone(区域)实现数据分区

示例

查看分片集群状态

查看数据分布和 chunk 详情

sh.status()

启用数据库分片

对 myapp 数据库启用分片

sh.enableSharding("myapp")

创建分片集合

按 userId 哈希分片

sh.shardCollection("myapp.orders", { userId: "hashed" })

范围分片

按日期范围分片

sh.shardCollection("myapp.events", { createdAt: 1 })

添加分片

将新节点加入集群

sh.addShard("rs2/host4:27017,host5:27017")