Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

Resincroniza el nodo de un set de réplicas autogestionado

Un set de réplicas se vuelve "desactualizado" cuando su proceso de replicación se retrasa tanto que el primario sobrescribe entradas de Oplog que el miembro aún no ha replicado. El nodo no puede alcanzar el ritmo y se vuelve "desactualizado". Cuando esto ocurre, debes resincronizar completamente el nodo removiendo sus datos y realizando una sincronización inicial.

Este tutorial aborda tanto la resincronización de un nodo obsoleto como la creación de un nuevo nodo utilizando datos semilla de otro nodo, ambos procedimientos que pueden utilizarse para restaurar un nodo de un conjunto de réplicas. Al sincronizar a un nodo, se debe elegir una hora en la que el sistema tenga la capacidad necesaria para transferir una gran cantidad de datos. Programa la sincronización en un momento de bajo uso o durante un periodo de mantenimiento.

Importante

Volver a sincronizar desde el nodo más actualizado en el set de réplicas.

Si vuelves a sincronizar un nodo con datos obsoletos, el nodo se reincorpora al set de réplicas en un punto posterior a donde estaba antes. Una escritura que fue confirmada por mayoría antes de la resincronización puede que ya no esté confirmada por mayoría. Esto puede ocasionar la pérdida de datos.

MongoDB ofrece dos opciones para realizar una sincronización inicial:

Nota

Para evitar cambiando el quórum de escritura, nunca sustituya más de un set de réplicas a la vez.

Advertencia

Durante la sincronización inicial, mongod remueve el contenido del directorio dbPath.

Este procedimiento se basa en el proceso típico de MongoDB para la Sincronización de set de réplicas. Esto almacena los datos actuales en el nodo. Para obtener una visión general del proceso de sincronización inicial de MongoDB, consulta la sección de Sincronización de Set de réplicas.

Las operaciones de sincronización inicial pueden afectar a los demás nodos del conjunto y generar tráfico adicional al nodo de origen. El nodo que se está sincronizando requiere que otro nodo del conjunto esté accesible y actualizado.

Si la instancia no tiene datos, puedes seguir el procedimiento para Agregar nodos a un set de réplicas autogestionado o Reemplazar un nodo de un set de réplicas autogestionado para agregar un nuevo nodo a un set de réplicas.

También puedes forzar que un mongod que ya es nodo del conjunto realice una sincronización inicial al reiniciar la instancia sin el contenido del directorio dbPath:

  1. Detén la instancia mongod del nodo. Para garantizar un apagado limpio, use el método db.shutdownServer() de mongosh o en sistemas Linux, la opción mongod --shutdown.

  2. (Opcional) Hacer una copia de seguridad de todos los datos y subdirectorios del directorio dbPath del nodo. Si no se requiere una copia de seguridad completa, considera hacer una copia de seguridad solo del directorio diagnostic.data para preservar datos de solución de problemas potencialmente útiles en caso de inconvenientes. Consulta Captura de Datos Diagnósticos a Tiempo Completo para más información.

  3. Borra todos los datos y subdirectorios del directorio dbPath del nodo.

  4. Reinicia el proceso mongod.

En este punto, el mongod realiza una sincronización inicial. La duración del proceso de sincronización inicial varía dependiendo del tamaño de la base de datos y la latencia de red entre los miembros del set de réplicas.

Este enfoque "sembrar" un nodo nuevo o estancado utilizando los archivos de datos de un nodo existente en el set de réplicas. Los archivos de datos deben ser lo suficientemente recientes para permitir que el nuevo nodo se ponga al día con el oplog. De lo contrario, el nodo necesitaría realizar una sincronización inicial.

Puede capturar los archivos de datos como una snapshot o una copia directa. Sin embargo, en la mayoría de los casos, no se pueden copiar archivos de datos de una instancia en ejecución de mongod a otra porque los archivos de datos cambiarán durante la operación de copia de archivos.

Importante

Si copias archivos de datos, asegúrate de que tu copia incluya el contenido de la base de datos local.

No se puede usar una mongodump copia de seguridad para los archivos de datos: solo una copia de seguridad snapshot. Para conocer los enfoques para capturar una coherente de una mongod instancia en ejecución, consulta la documentación sobre métodos de copia de seguridad para una implementación autogestionada.

Luego de copiar los archivos de datos desde el origen "seed", iniciar la instancia mongod con un nuevo members[n]._id y permitir que aplicar todas las operaciones desde el oplog hasta reflejar el estado actual del set de réplicas. Para ver el estado actual del set de réplicas, utiliza rs.printSecondaryReplicationInfo() o rs.status().

Volver

Obligar a un nodo a convertirse en primario

En esta página