更改 MongoDB 服务器结构最安全的方法是什么?

更改 MongoDB 服务器结构最安全的方法是什么?

我目前有一个 MongoDB 副本集配置如下:

{
    "_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) 转换为 3 个 m1.large 分片。因此,基本上,从以下开始:

  • EC2 上的副本(m1.xlarge)
  • 蒙特利尔的备份副本
  • 仲裁者

  • EC2 上的副本
    • 分片 1 (m1.large)
    • 分片 2 (m1.large)
    • 分片 3 (m1.large)
  • 蒙特利尔的备份副本
  • 仲裁者

这可能吗?我可以在 EC2 中对副本集进行分片,同时在蒙特利尔的副本中只保留一台服务器吗?如果可以,正确的做法是什么?我在 Mongo 中的复制/分片方面遇到了真正的“先有鸡还是先有蛋”的问题,因此任何帮助都将不胜感激。

非常感谢 :)。

答案1

基本步骤如下:

  1. 启动 mongos 和配置服务器
  2. 将此副本集设为您的第一个分片。
  3. 添加分片 2
  4. 添加分片 3

您不能将备份副本用作所有分片的备份:它只是该副本集的备份。

您应该为每个分片设置一个单独的副本集。如果蒙特利尔服务器上有足够的容量,您可以在该服务器上为分片 2 和 3 设置一个备份成员,但它们必须是独立的蒙哥来自分片 1 成员的进程。

相关内容