У меня есть набор реплик mongodb, и я хочу переместить его на настройку одного сервера
Это так же просто, как rs.remove()
к другим 2 узлам?
На текущем первичном узле набора реплик вы можете выполнить rs.remove()
для этих узлов и, таким образом, останавливает попытки репликации на них.
Вам, вероятно, придется выключить сервер, который вы хотите запустить в одиночном режиме, и запустить его снова без --replSet <name>
вариант (или что бы он ни был установлен в вашем файле конфигурации), так как это запустит сервер в одиночном режиме и не будет пытаться реплицироваться на любые другие узлы.
Вы можете вообще пропустить удаление, и на самом деле вы должны это сделать. Чтобы объяснить: если вы используете rs.remove () по одному, то после первого удаления вы останетесь без достаточного количества голосов для формирования большинства (невозможно получить большинство с двумя узлами).
Итак, как предложил Майк, просто перезапустите основной без --replSet (или эквивалент файла конфигурации) и выключите другие узлы.
По моему опыту, чтобы полностью отключить отработку отказа (и удалить текущий основной из пула), вам необходимо сделать следующее:
rs.remove()
чтобы удалить все вторичные узлы из группы.Это приведет к тому, что ваш старый основной сервер станет вашим новым единственным сервером (все остальные серверы могут быть отключены / уничтожены).
Всякий раз, когда я пробовал простой перезапуск без какой-либо конфигурации набора реплик / флага --replSet, он не работал, предположительно потому, что в локальной базе данных все еще есть конфигурация для набора реплик.