我目前有一个MongoDB副本集configuration如下:
{ "_id" : "ahspy_mongo_set", "version" : 13, "members" : [ { "_id" : 0, "host" : "remotedatacenter.in.montreal.dns.com", "priority" : 0 }, { "_id" : 1, "host" : "t1.micro.at.ec2.dns.com", "arbiterOnly" : true }, { "_id" : 2, "host" : "m1.xlarge.at.ec2.dns.com" } ] }
所以基本上,EC2上的一台服务器备份到了蒙特利尔的另一台服务器,由于多种原因,它们不能成为主服务器。
我想改变我的结构,我不知道从哪里开始,而不会造成很大的麻烦。 事实上,我甚至不知道我想做什么是可能的。
我想要做的是拿EC2(m1.xlarge)的主DB服务器,把它变成3 m1.large shards。 所以基本上,从:
至
这可能吗? 我可以在EC2中分割副本集,同时只保留蒙特利尔副本中的一台服务器吗? 如果是这样,那么做到这一点的正确方法是什么? 我在Mongo中有一个真正的“Chicken and Egg”问题与复制/分片,所以任何帮助将不胜感激。
非常感谢你 :)。
以下是基本步骤:
您不能使用备份副本作为所有分片的备份:它只是备份一个副本集。
您应该为每个分片设置一个单独的副本集。 如果在Montreal服务器上有容量的话,你可以在该服务器上放置一个分片2和分片3的备份成员,但是他们必须是独立于分片1成员的mongod进程。