У меня есть Mongo
набор реплик с несколькими второстепенными. Коробка, на которой размещен вторичный экземпляр, потерпела крах и потеряла базу данных.
Я Mongo
снова запустил вторичный экземпляр, и теперь он застрял в STARTUP2 более чем на 12 часов. Имеет ли это смысл ? Документы говорят, что Mongo
должны быть в STARTUP2 в течение короткого периода времени, прежде чем войти в состояние RECOVERING
Что конкретно означает STARTUP2? Это копирование базы данных с первичной? Как я могу это проверить (при условии, что Mongo работает в Linux)?
show databases
терпит неудачу сnot master and slaveOk=false
Состояние STARTUP2 означает, что узел не может голосовать. Член RS входит в это состояние, когда процесс MongoD завершает загрузку своей конфигурации. В этом состоянии участник создал потоки для обработки внутренних операций репликации, но ему еще предстоит изменить состояние на Восстановление и далее с этого на Вторичное (см. [Состояние и их подробности в документации]) .
Если ваш узел находился в этом состоянии более короткого периода времени, то вы столкнулись с некоторым странным поведением. Это почти невозможно проанализировать без логов, чтобы определить, почему они застряли. Запуск rs.status () и db.printSlaveReplicationInfo () даст вам некоторые подробности о локальном изображении на узле.
Обычный подход к решению этой проблемы - закрыть узел, стереть его файлы данных (эти файлы в dbpath) и перезапустить его. Это перезапустит начальный процесс синхронизации, и он должен перейти к ВТОРИЧНОМУ. Если он снова застрянет в STARTUP2, вам нужно будет просмотреть журналы, чтобы собрать больше информации о причинах - существует ряд причин, но может произойти нестабильная сеть или конфликт локальных ресурсов.
Следует отметить, что во время начальной синхронизации узел останется в STARTUP2, поэтому в зависимости от объема синхронизируемых данных это может занять значительное количество времени (возможно, дней).
источник
db.stats
базе данных растет. В журнале написано, что некоторые объектыcloned
. Я все еще ищу возможные причины этой проблемы.ping
между хостами это ок.Одной из возможных причин является то, что ваш вторичный стал "устаревшим", как указано здесь .
При повторной синхронизации участника убедитесь, что RS не находится под большой нагрузкой.
источник
Состояние STARTUP2 может быть связано с нехваткой места на диске. Ну, поскольку синхронизировать некуда, он может оставаться только в состоянии @ STARTUP2.
источник