Чтение документации MongoDB о том, как настроить конфигурацию ведущего-ведомого кластера (в нашем кластере будет более 12 узлов, поэтому, к сожалению, у нас не может быть конфигурации с набором реплик), как я могу повысить ведомое устройство до ведущего без нужно остановить любой процесс?
Есть ли какая-нибудь команда, которую мы можем использовать, например, команда slaveof в Redis, которая позволяет нам повышать подчиненное устройство до главного без необходимости перезапускать процесс?
Это то, что мы нашли в документации MongoDB (http://docs.mongodb.org/manual/core/master-slave/):
Для постоянного переключения с недоступного или поврежденного ведущего устройства (A в следующем примере) на ведомое устройство (B):
Выключите A. Остановите mongod на B. Создайте резервную копию и переместите все файлы данных, которые начинаются с local на B, из dbpath. Предупреждение Удаление локального. * Является безотзывным и не может быть отменено. Выполняйте этот шаг с особой осторожностью. Перезапустите mongod на B с параметром --master. Примечание. Это однократная операция, которую нельзя отменить. A не может стать подчиненным для B, пока не завершит полную повторную синхронизацию.
Неужели это единственный способ?
Да, это действительно способ смены роли. Есть причина, по которой Master / Slave устарел в пользу наборов реплик. в Мастер / Раб В документации они предоставляют метод имитации поведения ведущего / ведомого устройства с использованием наборов реплик и двух узлов. Если вы настроите это таким образом, вы можете получить горячую замену режима с помощью простой команды из консоли Mongo.
{ _id : 'replSet', members : [ { _id : 0, host : "mongomaster", priority : 0},
{ _id : 1, host : "mongoslave", priority : 1 } ]
}
Это даст вам возможность поменяться ролями. Вы сообщаете реплике, которая должна поменять местами, какие серверы действуют как первичные, а какие как вторичные.
Дополнение к ответу системных администраторов, чтобы прояснить ваш вопрос в комментариях:
Нет, в настоящее время (начиная с версии 2.4) нет возможности выйти за пределы 12 узлов в наборе реплик. Вы можете изучить использование Соединитель Mongo иметь несколько наборов, хотя как возможное решение. Соединитель позволяет вам воспроизводить операции из одного набора в другом наборе, по сути, путем отслеживания журнала операций (как в целом работает репликация). Однако это будет означать, что решение любых проблем синхронизации между кластерами не будет автоматическим и, по сути, будет зависеть от вас.
Для справки: соответствующий вопрос для голосования / наблюдения за увеличением предела в 12 узлов: СЕРВЕР-3110 - в настоящее время он запланирован для 2.5.x (текущая нестабильная ветвь разработки), но, как и все подобные вещи, пока он не будет зафиксирован и в стабильном выпуске, вы не можете точно сказать, когда это будет сделано.