#mongodb
#mongodb
Вопрос:
У меня есть 3 вопроса относительно набора реплик в mongodb в Windows:
- В настоящее время у меня есть автономный запуск с данными на нем, если я создам набор реплик (добавив 2 вторых), будет ли у меня время простоя или я могу создать набор реплик и добавить 2 вторых, пока автономный (теперь основной) все еще работает?
- Будут ли 2 вторых устройства копировать все данные из основного? Также данные, которые были записаны в standalone до того, как они стали частью набора реплик?
- Как только есть выборы, secondry становится основным, но тогда это означает, что основной находится на другом IP порту, это означает, что мне также нужно изменить свою запись на новый основной адрес самостоятельно или mongodb делает это сам? или нужно использовать виртуальный ip?
Ответ №1:
- Взгляните на Преобразование автономного объекта в набор реплик. Вам необходимо изменить файл конфигурации и перезапустить MongoDB, поэтому у вас есть время простоя вашего MongoDB.
- Да, всякий раз, когда вы добавляете нового участника в набор реплик, MonogDB выполняет начальную синхронизацию с новым вторичным
- Вам нужно будет изменить свое подключение, см. раздел Подключение к набору реплик MongoDB. Строка подключения содержит все элементы набора реплик, и клиент будет подключаться (по умолчанию) к основному.
На самом деле вам не нужно помещать все элементы набора реплик в строку подключения, клиент обнаружит их автоматически. Однако, если вы разместили только одного участника и по случайности этот участник недоступен, то у вас нет связи.
Комментарии:
1. Спасибо за быстрые и отличные ответы, просто чтобы убедиться: таким образом, время простоя, с которым я столкнусь, заключается только в том, чтобы отключить mongod и запустить новый, работающий как набор реплик с новым файлом conf, верно? Кроме того, каков наилучший способ создать резервную копию всего автономного устройства, прежде чем приступить к такой процедуре? просто чтобы убедиться, что ничего не пойдет не так
2. Простоем будет перезапуск mongod плюс
rs.initiate()
, я думаю.3. Для резервного копирования выполните экспорт с
mongodump
mongoexport
вашими коллекциями или из них. Или выполнитьdb.fsyncLock()
— это не останавливает базу данных, но блокирует ее, т. Е. Предотвращает любую операцию записи в БД. Затем вы можете сделать копию / снимок всейdbPath
папки.db.fsyncUnlock()
После этого запустите программу, чтобы разблокировать базу данных.