Добавление участников в набор реплик на MongoDb - PullRequest
20 голосов
/ 22 января 2012

Я пытаюсь создать набор реплик с MongoDb, имена хостов серверов:

имя хоста hostname-1 hostname-2

У каждого из них есть все соответствующие имена хостов, подробно описанные в их /Файл etc / hosts (все они работают под управлением Ubuntu 10.04, 64-битная версия)

Когда я выполняю rs.initiate на одном узле, все, кажется, запускается хорошо.Запуск rs.status ();показывает:

{
    "set" : "vega",
    "date" : ISODate("2012-01-22T19:15:55Z"),
    "myState" : 1,
    "members" : [
        {
            "_id" : 0,
            "name" : "hostname:27017",
            "health" : 1,
            "state" : 1,
            "stateStr" : "PRIMARY",
            "optime" : {
                "t" : 1327254848000,
                "i" : 1
            },
            "optimeDate" : ISODate("2012-01-22T17:54:08Z"),
            "self" : true
        }
    ],
    "ok" : 1
}

Проблема возникает, когда я пытаюсь добавить новый элемент в набор реплик.Я использую команду rs.add (hostname-1);и я получаю следующую ошибку:

{
    "assertion" : "need most members up to reconfigure, not ok : vega-1:27017",
    "assertionCode" : 13144,
    "errmsg" : "db assertion failure",
    "ok" : 0
}

Я пробовал многочисленные комбинации использования имени хоста, IP-адреса, как с номером порта, так и без него, и я всегда получаю одну и ту же проблему.Имя хоста разрешается, я пробовал ping hostname-1, и он отлично работает.

У кого-нибудь есть идеи относительно того, что может быть причиной этой проблемы?

К сожалению, в документации Mongo нетнет примеров настройки набора реплик в сценарии реального мира, только использование трех экземпляров на одном компьютере, что явно бесполезно.

Заранее благодарен за любую помощь!

Ответы [ 6 ]

14 голосов
/ 04 декабря 2012

Удалите это в вашей конфигурации:

bind_ip = 127.0.0.1

Этот параметр в настоящее время несовместим с наборами реплик mongodb.

10 голосов
/ 12 июля 2012

Эта ошибка возникает, когда вы добавляете узлы, которые еще не работают (пока). Звучит так, что либо «имя_хоста-1» недоступно (не в / etc / hosts, нет DNS), либо оно доступно, но не запускает mongodb с установленным параметром конфигурации replSet

3 голосов
/ 17 января 2014
{
    "errmsg" : "exception: need most members up to reconfigure, not ok : server2:27017",
    "code" : 13144,
    "ok" : 0
}

Я обнаружил вышеуказанную ошибку в Mongo 2.4.9.Моя ошибка в том, что я не указал replSet в конфигурации Монго нового члена реплики.rs.add("server2:27017") хорошо сработало после.

2 голосов
/ 04 сентября 2014

похожая проблема у меня была, решение было иметь ключевой файл.http://docs.mongodb.org/manual/tutorial/deploy-replica-set-with-auth/#create-the-key-file-to-be-used-by-each-member-of-the-replica-set

2 голосов
/ 23 января 2012

К сожалению, в документации Mongo нет примеров настройки набора реплик в сценарии реального мира, только использование трех экземпляров на одном компьютере, что явно бесполезно.

Согласен, это довольно плохо. Этот пример должен быть полностью удален из документации.

Существует еще один способ запустить набор реплик, используя команду rs.configure(). Вы также можете указать все три узла одновременно, а затем выполнить команду rs.inititiate().

.

См. Здесь для примера определения всех узлов перед инициацией.

Подробнее о различных командах см. Здесь .

0 голосов
/ 03 марта 2014

Возможно, вам нужно проверить, что mongod работает на втором узле, прежде чем добавить второй узел к node1.Если он работает rs.add (), а затем проверьте rs.status ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...