Как изменить версию протокола набора реплик в MongoDB.

Я пытаюсь изменить протокол набора реплик на pv1. У меня есть 5 наборов реплик серверов Mongo 3.6. Я использую документацию здесь https://docs.mongodb.com/manual/reference/replica-set-protocol-versions/ чтобы внести эти изменения.

Документация довольно проста, и работа кажется простой https://docs.mongodb.com/manual/reference/replica-set-protocol-versions/. На ПЕРВИЧНОМ сервере я выполнил следующие три команды:

cfg = rs.conf ();
cfg.protocolVersion = 1;
rs.reconfig (CFG);

После этого я получаю:

rs.reconfig (CFG);
{
    "хорошо": 1,
    "operationTime": отметка времени (1531825299, 3),
    "$clusterTime": {
        "clusterTime": метка времени (1531825299, 3),
        "подпись": {
            "hash": BinData(0,"AIwmnD882cUdRgKYgGsRZg9Z4q0="),
            "keyId": NumberLong("6577197549977862145")
        }
    }
}

Все выглядит хорошо, но после перехода в Монго я вижу это:

Версия оболочки MongoDB v3.6.6
подключение к: mongodb://127.0.0.1:27017
Версия сервера MongoDB: 3.6.6
Сервер имеет предупреждения при запуске: 
2018-07-10T22:50:39.164+0200 I REPL     [replexec-0] 
2018-07-10T22:50:39.164+0200 I REPL     [replexec-0] ** ПРЕДУПРЕЖДЕНИЕ. Этот набор реплик был настроен с версией протокола 0.
2018-07-10T22:50:39.164+0200 I REPL     [replexec-0] ** Эта версия протокола устарела и подлежит удалению 
2018-07-10T22: 50: 39.164 + 0200 Я REPL [replexec-0] ** в будущей версии.

Я не знаю, что я делаю не так? Любая помощь, почему эта операция не работает?

1 ответ

Решение

Вам нужно перезапустить службу mongod после rs.reconfig(cfg). Повторная настройка изменит версию протокола, но она будет активна после перезапуска. Сначала вам нужно перезапустить вторичное устройство, затем сделать понижение для основного и перезапустить его. После этого вы больше не увидите предупреждение.

В mongodb предупреждения генерируются во время запуска и будут отображаться в оболочке mongo до перезапуска. Это исторические предупреждения, и вы можете увидеть фактическую отметку времени, когда они были созданы.

Вы можете перезапустить mongodb только для того, чтобы скрыть эти исторические предупреждения.

Но нет необходимости перезапускать mongodb для изменения версии протокола, поскольку конфигурация репликации применяется на лету сразу после rs.reconfig().

Другие вопросы по тегам