Как изменить конфигурацию набора реплик?
У меня работает mongo 2 node, с этой конфигурацией конфигурации реплики.
config = {_id: "repl1", members:[
{_id: 0, host: 'localhost:15000'},
{_id: 1, host: '192.168.2.100:15000'}]
}
Мне нужно переместить эти оба узла на новые серверы. Я скопировал все с старых на новые серверы, но у меня проблемы с реконфигурированием конфигурации реплики из-за изменения ip на втором node.
Я пробовал это.
config = {_id: "repl1", members:[
{_id: 0, host: 'localhost:15000'},
{_id: 1, host: '192.168.2.200:15000'}]
}
rs.reconfig(config)
{
"startupStatus" : 1,
"errmsg" : "loading local.system.replset config (LOADINGCONFIG)",
"ok" : 0
}
Это сообщение отображается выше, но изменения не происходит.
Я также попытался изменить имя набора реплик, но указав на те же данные dirs.
Я получаю следующую ошибку:
rs.initiate()
{
"errmsg" : "local.oplog.rs is not empty on the initiating member. cannot initiate.",
"ok" : 0
}
Каковы правильные шаги для изменения IP-адреса, но сохранение данных на втором node, или мне нужно воссоздать/повторить синхронизацию 2-го node?
Ответы
Ответ 1
Ну, у меня была та же проблема.
Мне пришлось удалить все репликации и oplog.
use local
db.dropDatabase()
перезагрузите монго с новым заданным именем
config = {_id: "repl1", members:[
{_id: 0, host: 'localhost:15000'},
{_id: 1, host: '192.168.2.100:15000'}]
}
rs.initiate(config)
Я надеюсь, что это тоже сработает для вас.
Ответ 2
Вы можете использовать параметр force при настройке репликации:
rs.reconfig(config, {force: true})
Обратите внимание, что, как уже сказал Адам в комментариях, у вас должно быть как минимум 3 узла: 2 полных узла и 1 арбитр (минимальная поддерживаемая конфигурация) или 3 полных узла (минимальная рекомендуемая конфигурация), так что первичный node может быть избран.
Ответ 3
Я понимаю, что это старый пост, но я обнаружил, что получаю эту ту же ошибку при попытке изменить порт, используемый вторичными в моем наборе реплик.
В моем случае мне нужно было остановить вторичную конфигурацию, которую я менял, и вывести ее на новый адрес и порт ПЕРЕД добавлением измененной конфигурации в Primary.
Это в документации монго, но порядок, в котором мне приходилось поднимать вещи вверх и вниз, было то, что я неправильно читал на первом проходе, поэтому для ясности я повторил это здесь:
- Выключите второй элемент набора реплик, который вы перемещаете.
- Принесите вторичную резервную копию на свой новый адрес
- Измените конфигурацию, как указано в исходном сообщении выше.