On this page
将分片添加到集群
在本页面
在创建集群之后或需要在集群中增加容量的任何时间,都可以将分片添加到sharded cluster。如果尚未创建分片群集,请参见部署分片集群。
在生产环境中,所有分片都应为replica sets。
Considerations
Balancing
将分片添加到分片群集时,会影响所有现有分片集合的群集中各分片中chunks的平衡。平衡器将开始迁移块,以便群集将达到平衡。有关更多信息,请参见Cluster Balancer。
在 2.6 版中进行了更改:块迁移可能会影响磁盘空间。从 MongoDB 2.6 开始,源碎片默认情况下会自动存档迁移的文档。有关详细信息,请参见moveChunk directory。
Capacity Planning
向群集添加分片时,请始终确保群集具有足够的容量以支持平衡群集所需的迁移,而不影响合法的生产流量。
将分片添加到集群
您可以通过连接到mongos实例来与分片群集进行交互。
mongo --host mongos0.example.net --port 27017
- 使用sh.addShard()方法将分片添加到群集,如以下示例所示。每个分片分别发出sh.addShard()。如果该分片是副本集,请指定副本集的名称并指定该集的成员。在生产部署中,所有分片均应为副本集。
Optional
以下是使用sh.addShard()添加分片的示例:
- 要添加名为
rs1
的副本集分片(其成员在mongodb0.example.net
的端口27018
上运行),请发出以下命令:
sh.addShard( "rs1/mongodb0.example.net:27018" )
- 要添加在
mongodb0.example.net
的端口27018
上运行的独立mongod碎片,请发出以下命令:
sh.addShard( "mongodb0.example.net:27018" )
Note
chunks可能需要一些时间才能迁移到新分片。