向集群中添加分片¶
在创建集群之后,或者要提高集群的性能时,都需要向集群中添加分片.如果还没有搭建集群,参见 部署一个集群.
在生产环境中,所有的分片都应该是 复制集.
向集群中添加一个分片¶
连接到一个 mongos 之后对集群进行操作.
使用 mongo 终端连接到一个 mongos .比如,如果一个 mongos 运行在 mongos0.example.net 的 ``27017``端口,使用以下命令进行连接:
mongo --host mongos0.example.net --port 27017
使用 sh.addShard() 方法向集群中添加分片. sh.addShard() 每次添加一个分片,如果要添加的分片是一个复制集,需要指定复制集的名字与至少一个成员.在生产环境中,所有分片都应该是复制集.
选项
You can instead use the addShard database command, which lets you specify a name and maximum size for the shard. If you do not specify these, MongoDB automatically assigns a name and maximum size. To use the database command, see addShard.
下面是使用 sh.addShard() 添加分片的例子:
有一个运行在 mongodb0.example.net 的 27017 的mongod,它是名字为 rs1 的复制集的一个成员,要添加一个这样的分片,需要:
sh.addShard( "rs1/mongodb0.example.net:27017" )
在 2.0.3 版更改.
在MongoDB版本2.0.3之前,你必须指定所有复制集的成员,比如:
sh.addShard( "rs1/mongodb0.example.net:27017,mongodb1.example.net:27017,mongodb2.example.net:27017" )
要添加运行在 mongodb0.example.net 的 27017 端口的单机 mongod ,使用以下命令:
sh.addShard( "mongodb0.example.net:27017" )
注解
将 数据块 迁移到新的分片会花费一些时间.