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

Реплика mongo настроена на один сервер

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

Это так же просто, как rs.remove() к другим 2 узлам?

На текущем первичном узле набора реплик вы можете выполнить rs.remove() для этих узлов и, таким образом, останавливает попытки репликации на них.

Вам, вероятно, придется выключить сервер, который вы хотите запустить в одиночном режиме, и запустить его снова без --replSet <name> вариант (или что бы он ни был установлен в вашем файле конфигурации), так как это запустит сервер в одиночном режиме и не будет пытаться реплицироваться на любые другие узлы.

Вы можете вообще пропустить удаление, и на самом деле вы должны это сделать. Чтобы объяснить: если вы используете rs.remove () по одному, то после первого удаления вы останетесь без достаточного количества голосов для формирования большинства (невозможно получить большинство с двумя узлами).

Итак, как предложил Майк, просто перезапустите основной без --replSet (или эквивалент файла конфигурации) и выключите другие узлы.

По моему опыту, чтобы полностью отключить отработку отказа (и удалить текущий основной из пула), вам необходимо сделать следующее:

  • Из текущего основного используйте rs.remove() чтобы удалить все вторичные узлы из группы.
  • Остановить mongod на текущем первичном.
  • Следуй инструкциям Вот - а именно удалить все локальные. * файлы на первичном экземпляре и удалить любую конфигурацию набора реплик из конфигурационного файла mongo первичного.
  • Запустите mongod на текущем первичном.

Это приведет к тому, что ваш старый основной сервер станет вашим новым единственным сервером (все остальные серверы могут быть отключены / уничтожены).

Всякий раз, когда я пробовал простой перезапуск без какой-либо конфигурации набора реплик / флага --replSet, он не работал, предположительно потому, что в локальной базе данных все еще есть конфигурация для набора реплик.