Amazon-Ec2

更改 MongoDB 伺服器結構最安全的方法是什麼?

  • July 15, 2011

我目前有一個 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. 啟動 mongos 和配置伺服器
  2. 將此副本設置為您的第一個分片。
  3. 添加分片 2
  4. 添加分片 3

您不能將備份副本用作所有分片的備份:它只是那個副本集的備份。

您應該為每個分片設置一個單獨的副本集。如果蒙特利爾伺服器上有容量,您可以在該伺服器上為分片 2 和 3 放置一個備份成員,但它們必須是與分片 1 成員分開的mongod程序。

引用自:https://serverfault.com/questions/290767