2016-12-29 79 views
2

在我發現兩種方法副本添加到成員的文檔:Mongodb 3.4 - 將副本添加到副本集的正確方法是什麼?

rs.add()

rs.add('mongodb0.example.net:27017') 

sh.addShard()

sh.addShard("rs1/mongodb0.example.net:27017") 

所以,檢查我的理解:這是真正的staments ?

  • rs.add()用於向其副本集添加成員的額外副本。可以用於配置服務器和碎片。
  • sh.addShard()是將分片添加到集羣的具體方法。但爲了方便起見,也可以用來將副本添加到分片的副本集。

謝謝。

回答

1

rs.add()用於向其副本集添加成員的額外副本。可以用於配置服務器和碎片。

-

rs.add()用於成員的額外副本添加到它的副本集

上述說法是正確的。但更確切地說,我會將其改爲「爲當前主要副本集添加額外成員」。

可以的,如果你正在使用Replica Set Config Server用於配置服務器

是的, - 如MongoDB中3.2 oppossed 3個鏡像配置服務器(SCCC),或者你正在使用MongoDB的3.4。

和碎片

這是不正確的。碎片是羣集的邏輯成員,它本身可以是一個副本集或一個獨立羣(獨立羣僅推薦用於測試/開發目的)。您無法使用rs shell hellper將分片添加到集羣。

sh.addShard()是將分片添加到集羣的具體方法。但爲了方便起見,也可以用來將副本添加到分片的副本集。

-

sh.addShard()是將碎片添加到集羣的特定的方法。

正確

但爲了方便也可用於副本添加到碎片的replicaSet。

不正確。 addShard,因爲它的名字暗示用於將分片添加到集羣而不是成員(您稱爲副本)作爲集合。如前所述,分片可以是獨立的或複製的集合。在後一種情況下,參數addShard必須是複製集名稱(rs1),後跟'/'。其次是副本集種子成員。把它放在一起:"rs1/mongodb0.example.net:27017"

你 - 至少 - 必須初始化副本集,然後再將它作爲分片添加到集羣。在作爲分片加入集羣之後,您始終可以從該副本集中添加(或刪除)成員。