Как заменить узел в наборе затененных реплик?
Я получил осколочную установку mongodb с двумя наборами реплик:
mongos> db.runCommand( { listShards : 1 } )
{
"shards" : [
{
"_id" : "rs01",
"host" : "rs01/10.133.250.140:27017,10.133.250.154:27017"
},
{
"_id" : "rs02",
"host" : "rs02/10.133.242.7:27017,10.133.242.8:27017"
}
],
"ok" : 1
}
Узел 10.133.250.140 просто вышел из строя, и я заменил его другим (ip-адрес изменился). Переконфигурировать набор реплик было довольно просто, просто rs.remove() и rs.add() Теперь мне нужно обновить конфигурацию хоста для shard rs01. Как правильно это сделать?
2 ответа
Решение
Много раз вам нужно будет изменить строку хоста для шарда. Самый простой способ изменить строку хоста - запустить операцию обновления.
Подключитесь к Монго и сделайте это -
> use config
> db.shards.update({ "_id" : "rs01"},{$set : { "host" : "rs01/newip:27017,anothernewip:27017"} })
Возможно, вам придется перезапустить все монго.
Надеюсь это поможет:-)
Что ж, удаление проблемного осколка и добавление его снова кажется единственным вариантом.