Назад | Перейти на главную страницу

удалить набор реплик mongodb в кластере сегментирования

У меня такая конфигурация:

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 в качестве начального списка. После запуска процесса они автоматически обнаруживают остальных участников (как и любой другой клиент / драйвер в режиме набора реплик) и отслеживают каждый член в наборе реплик.