在分片群集中删除一个mongodb副本集

我有这样的configuration:

mongos> db.adminCommand('getShardMap') { "map" : { "RS13" : "RS13/mongo09-02:27003,mongo09-01:27001", "RS13/mongo09-02:27003,mongo09-01:27001" : "RS13/mongo09-02:27003,mongo09-01:27001", "RS26" : "RS26/mongo09-04.de.prod:27008,mongo09-01:27002", "RS26/mongo09-04.de.prod:27008,mongo09-01:27002" : "RS26/mongo09-04.de.prod:27008,mongo09-01:27002", "RS45" : "RS45/mongo09-02:27004,mongo09-03:27005", "RS45/mongo09-02:27004,mongo09-03:27005" : "RS45/mongo09-02:27004,mongo09-03:27005", "RS67" : "RS67/mongo09-03:27006,mongo09-03.de.prod:27006,mongo09-04.de.prod:27007", "RS67/mongo09-03:27006,mongo09-03.de.prod:27006,mongo09-04.de.prod:27007" : "RS67/mongo09-03:27006,mongo09-03.de.prod:27006,mongo09-04.de.prod:27007", "config" : "mongo09-01:27011,mongo09-02:27012,mongo09-03:27013", "mongo09-01:27001" : "RS13/mongo09-02:27003,mongo09-01:27001", "mongo09-01:27002" : "RS26/mongo09-04.de.prod:27008,mongo09-01:27002", "mongo09-02:27003" : "RS13/mongo09-02:27003,mongo09-01:27001", "mongo09-02:27004" : "RS45/mongo09-02:27004,mongo09-03:27005", "mongo09-03.de.prod:27006" : "RS67/mongo09-03:27006,mongo09-03.de.prod:27006,mongo09-04.de.prod:27007", "mongo09-03:27005" : "RS45/mongo09-02:27004,mongo09-03:27005", "mongo09-03:27006" : "RS67/mongo09-03:27006,mongo09-03.de.prod:27006,mongo09-04.de.prod:27007", "mongo09-04.de.prod:27007" : "RS67/mongo09-03:27006,mongo09-03.de.prod:27006,mongo09-04.de.prod:27007", "mongo09-04.de.prod:27008" : "RS26/mongo09-04.de.prod:27008,mongo09-01:27002" }, "ok" : 1 } 

其实mongo09-03似乎是重复的:

  "mongo09-03.de.prod:27006" : "RS67/mongo09-03:27006,mongo09-03.de.prod:27006,mongo09-04.de.prod:27007", "mongo09-03:27006" : "RS67/mongo09-03:27006,mongo09-03.de.prod:27006,mongo09-04.de.prod:27007", 

请考虑复制集RS67也是分片群集的一部分。

当我将一个mongodb副本集放入一个分片集群中时,我可以删除它吗? 如果是的话,怎么样?

我可以使用rs.remove(主机名)?

这不是一个简单的运行一个命令types的东西。 请参阅doc站点上的以下内容

http://docs.mongodb.org/manual/tutorial/remove-shards-from-cluster/

删除复制成员

  rs.remove("mongo09-03.de.prod:27006") 

我们已成功configuration执行此命令的副本集:

 db.shards.update({_id: "RS67"} , {$set: {"host" : "RS67/mongo09-03.de.prod:27006,mongo09-04.de.prod:27007"}}) 

碎片地图现在正确configuration,额外的mongo09-03已经消失。

 mongos> db.adminCommand('getShardMap') { "map" : { "RS13" : "RS13/mongo09-02:27003,mongo09-01:27001", "RS13/mongo09-02:27003,mongo09-01:27001" : "RS13/mongo09-02:27003,mongo09-01:27001", "RS26" : "RS26/mongo09-04.de.prod:27008,mongo09-01:27002", "RS26/mongo09-04.de.prod:27008,mongo09-01:27002" : "RS26/mongo09-04.de.prod:27008,mongo09-01:27002", "RS45" : "RS45/mongo09-02:27004,mongo09-03:27005", "RS45/mongo09-02:27004,mongo09-03:27005" : "RS45/mongo09-02:27004,mongo09-03:27005", "RS67" : "RS67/mongo09-03.de.prod:27006,mongo09-04.de.prod:27007", "RS67/mongo09-03.de.prod:27006,mongo09-04.de.prod:27007" : "RS67/mongo09-03.de.prod:27006,mongo09-04.de.prod:27007", "config" : "mongo09-01:27011,mongo09-02:27012,mongo09-03:27013", "mongo09-01:27001" : "RS13/mongo09-02:27003,mongo09-01:27001", "mongo09-01:27002" : "RS26/mongo09-04.de.prod:27008,mongo09-01:27002", "mongo09-02:27003" : "RS13/mongo09-02:27003,mongo09-01:27001", "mongo09-02:27004" : "RS45/mongo09-02:27004,mongo09-03:27005", "mongo09-03.de.prod:27006" : "RS67/mongo09-03.de.prod:27006,mongo09-04.de.prod:27007", "mongo09-03:27005" : "RS45/mongo09-02:27004,mongo09-03:27005", "mongo09-04.de.prod:27007" : "RS67/mongo09-03.de.prod:27006,mongo09-04.de.prod:27007", "mongo09-04.de.prod:27008" : "RS26/mongo09-04.de.prod:27008,mongo09-01:27002" }, "ok" : 1 } 

也请考虑:

只有在mongos第一次启动时才使用集合中的主机列表作为种子列表。 一旦这个过程开始,他们自动发现其余的成员(就像任何其他客户端/驱动程序在副本集模式),并跟踪副本集中的每个成员。