У меня такая конфигурация:
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 (имя хоста)?
Это непростая задача типа «запустить одну команду». См. Следующее на сайте документации
http://docs.mongodb.org/manual/tutorial/remove-shards-from-cluster/
Чтобы удалить член набора реплик
rs.remove("mongo09-03.de.prod:27006")
Мы успешно настроили набор реплик, выполнив эту команду:
db.shards.update({_id: "RS67"} , {$set: {"host" : "RS67/mongo09-03.de.prod:27006,mongo09-04.de.prod:27007"}})
Карта сегментов теперь настроена правильно, а лишние 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 в качестве начального списка. После запуска процесса они автоматически обнаруживают остальных участников (как и любой другой клиент / драйвер в режиме набора реплик) и отслеживают каждый член в наборе реплик.