设置碎片:我应该在以下服务器上安装MongoDB

时间:2011-09-21 19:59:57

标签: mongodb

按照Oreily Scaling MongoDB一书(即第27页),我看到了以下命令:

  

连接后,您可以添加分片。有两种方法可以添加   分片,取决于分片是单个服务器还是分片   副本集。假设我们有一台服务器,sf-02,我们一直都是   用于数据。我们可以通过运行addShard使它成为第一个分片   命令:

> db.runCommand({"addShard" : "sf-02:27017"})
{ "shardAdded" : "shard0000", "ok" : 1 }

问题1>:应该在sf-02的服务器上做什么? 我还应该安装MongoDB吗?如果有,哪个包?

  

例如,如果我们创建了一个副本集,名为副本集“rs”   成员rs1-a,rs1-b和rs1-c,我们可以说:

> db.runCommand({"addShard" : "rs/rs1-a,rs1-c"})
{ "shardAdded" : "rs", "ok" : 1 }

问题2>:“rs”在哪里?

问题3>:rs1-a,rs1-c是否共享同一台机器?

1 个答案:

答案 0 :(得分:1)

回复1:您应该使用--shardsvr选项运行mongod以将其作为分片服务器启动。每个分片服务器必须知道它将从mongos(分片路由器)接收连接。

回复2:'rs'是副本集的名称,集合只是一组机器(通常为3)。所以它不是位于一台机器上,它是一个抽象实体,代表集合中的机器组。

回复3:没有。出于测试目的,您可以在同一台计算机上运行副本集,但副本集的用途是故障转移。在生产中,您应该为该组的每个成员使用不同的机器。