Tengo un Mongo
conjunto de réplicas con algunas secundarias. Un cuadro, que aloja una instancia secundaria, se bloqueó y perdió la base de datos.
Comencé la Mongo
instancia secundaria nuevamente y ahora está atascada en STARTUP2 por más de 12 horas. Tiene sentido ? Los documentos dicen que Mongo
debe estar en STARTUP2 por un corto período de tiempo antes de ingresar al estado RECUPERANDO
¿Qué significa exactamente STARTUP2? ¿Está copiando la base de datos de la primaria? ¿Cómo puedo verificarlo (suponiendo que Mongo se esté ejecutando en Linux)?
show databases
falla connot master and slaveOk=false
El estado STARTUP2 significa que el nodo no puede votar. Un miembro de un RS ingresa a este estado una vez que el proceso MongoD completa la carga de su configuración. En este estado, el miembro ha creado subprocesos para manejar las operaciones de replicación interna, pero aún tiene que cambiar el estado a Recuperación y luego a Secundario (consulte el [estado y sus detalles en los documentos]) .
Si su nodo ha estado en este estado durante más de un breve período, entonces se encuentra con un comportamiento extraño. Esto es prácticamente imposible de analizar sin los registros para determinar por qué está atascado. La ejecución de rs.status () y db.printSlaveReplicationInfo () le dará algunos detalles sobre la imagen local en el nodo.
El enfoque normal para resolver esto sería apagar el nodo, borrar sus archivos de datos (esos archivos en el dbpath) y reiniciarlo. Esto reiniciará el proceso de sincronización inicial y debería pasar a SECUNDARIO. Si vuelve a atascarse en STARTUP2, tendrá que mirar los registros para recopilar más información sobre por qué: hay una variedad de causas, pero una que puede suceder es una red débil o una contención de recursos locales.
Un punto a tener en cuenta es que, mientras se realiza una sincronización inicial, el nodo permanecerá en STARTUP2, por lo que, dependiendo de la cantidad de datos que se sincronice, esto podría ser una cantidad considerable de tiempo (potencialmente días).
fuente
db.stats
la base de datos, está creciendo. El registro dice que algunos objetoscloned
. Todavía estoy buscando posibles causas de este problema.ping
entre los hosts está bien.Una posible causa es que su secundaria se vuelva "obsoleta" como se indica aquí .
Cuando vuelva a sincronizar un miembro, asegúrese de que el RS no esté bajo una carga pesada.
fuente
El estado STARTUP2 podría deberse a que no hay suficiente espacio en disco. Bueno, como no hay dónde sincronizar, solo puede permanecer en el estado @ STARTUP2.
fuente