Кластерный фрагмент MongoDB без первичного и только с одним активным вторичным

В моем сегментированном кластере MongoDB есть 3 сегмента, каждый из которых работает на 3 репликах. Обобщить:

Config Server:
  shardcfg1.server.com:27018
  shardcfg2.server.com:27018
  shardcfg3.server.com:27018
Shard1:
  shard11.server.com:27000 (P)
  shard12.server.com:27000 (S)
  shard13.server.com:27000 (S)
Shard2:
  shard21.server.com:27000 (S)
  shard22.server.com:27000 (STARTUP)
  shard23.server.com:27000 (Unhealthy - invalidReplicaSetConfig: Our replica set configuration is invalid or does not include us)
Shard3:
  shard31.server.com:27000 (S)
  shard32.server.com:27000 (P)
  shard33.server.com:27000 (S)

Если вы видите состояние выше, проблема заключается в SHARD2.

  • Нет начальной школы в SHARD2
  • Как помечен конфиг набора реплик shard23.server.com как не член

Вторичный shard21.server.comможет использоваться для получения дампа, поэтому потенциально нет потери данных. Однако я совершенно не знаю, как мне снова стабилизировать кластер?

Как мне удалить SHARD2полностью из кластера? Или как мне повторно инициализировать осколок с теми же серверами?

1 ответ

Решение

Одна маленькая деталь, которую я упустил, которая, в свою очередь, стала ключевой для решения: кластер управлялся Mongo-MMS!

Решение:

Итак, у меня был один вторичный сервер, другой сервер в режиме ЗАПУСКА и третий, который смехотворно объявил себя не частью набора реплик! Весь кластер управляется MMS. Я выключил все три сервера. Теперь я просто запустил вторичный сервер, доступный в автономном режиме, чтобы получить резервную копию всей базы данных.

В течение этого периода я удалил этот осколок из своего кластера, слив застрял, потому что в осколке не было первичного. Однако произошла странная вещь, и агент автоматизации с этих серверов был удален. После завершения резервного копирования я началmongodсервера, который был вторичным и имел данные о нем. К сожалению, терминал показал ВТОРИЧНЫЙ, однако, когда я проверил rs.status(), он показал три сервера, я вспомнил, как отключил один из мошеннических серверов. Именно тогда меня осенило, что MMS управляет конфигурацией этого набора реплик.

Я быстро перенастроил флаг force на true после удаления мошеннического сервера. Итак, теперь у меня есть два сервера, один в дополнительном, а другой в режиме запуска. Через несколько секунд после перенастройки! Вуаля! Вторичный превратился в первичный.

Долгая борьба, но рад сказать, что никогда не приходилось восстанавливать резервную копию или переделывать весь шард!

Другие вопросы по тегам