分片集群管理 (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")