J'ai une Mongo
réplique avec quelques secondaires. Une boîte, qui héberge une instance secondaire, s'est écrasée et a perdu la base de données.
J'ai redémarré l' Mongo
instance secondaire et maintenant elle est bloquée dans STARTUP2 pendant plus de 12 heures. Est-ce que ça fait du sens ? Les documents indiquent qu'ils Mongo
devraient être dans STARTUP2 pendant une courte période avant d'entrer dans l'état RECOVERING
Que signifie exactement STARTUP2? Copie-t-il la base de données du primaire? Comment puis-je le vérifier (en supposant que Mongo fonctionne sous Linux)?
show databases
échoue avecnot master and slaveOk=false
L'état STARTUP2 signifie que le nœud ne peut pas voter. Un membre d'un RS entre dans cet état une fois que le processus MongoD a terminé de charger sa configuration. Dans cet état, le membre a créé des threads pour gérer les opérations de réplication internes, mais il n'a pas encore changé d'état en Récupération et ensuite celui en Secondaire (voir [l'état et leurs détails dans les documents]) .
Si votre nœud est dans cet état depuis plus d'une brève période, vous rencontrez un comportement étrange. C'est à peu près impossible à analyser sans les journaux pour déterminer pourquoi il est bloqué. L'exécution de rs.status () et db.printSlaveReplicationInfo () vous donnera quelques détails sur l'image locale sur le nœud.
L'approche normale pour résoudre ce problème serait d'arrêter le nœud, d'essuyer ses fichiers de données (ces fichiers dans le dbpath) et de le redémarrer. Cela redémarrera le processus de synchronisation initial et devrait passer au SECONDAIRE. S'il se bloque à nouveau dans STARTUP2, vous devrez consulter les journaux pour collecter plus d'informations sur les raisons - il existe un éventail de causes, mais l'une d'entre elles peut être un réseau instable ou une contention de ressources locales.
Un point à noter est que pendant qu'une synchronisation initiale est en cours, le nœud restera dans STARTUP2, donc en fonction de la quantité de données synchronisées, cela pourrait prendre un temps considérable (potentiellement des jours).
la source
db.stats
la base de données, il grandit. Le journal indique que certains objetscloned
. Je cherche toujours les causes possibles de ce problème.ping
entre les hôtes est OK.Une cause possible est que votre secondaire devient "périmé" comme indiqué ici .
Lorsque vous resynchronisez un membre, assurez-vous que le RS n'est pas sous une lourde charge.
la source
L'état STARTUP2 peut être dû à un espace disque insuffisant. Eh bien, puisqu'il n'y a pas où synchroniser, il ne peut que rester à l'état @ STARTUP2.
la source