Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
Mantener
/ / /

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 la resincronización de un miembro obsoleto y la creación de uno nuevo con datos de inicialización de otro miembro. Ambas opciones permiten restaurar un miembro del conjunto de réplicas. Al sincronizar un miembro, elija un momento en el que el sistema tenga suficiente ancho de banda para transferir una gran cantidad de datos. Programe la sincronización durante un período de bajo uso o durante una ventana 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 miembros del conjunto y generar tráfico adicional hacia el miembro de origen. El miembro que se sincroniza requiere otro miembro del conjunto accesible y actualizado.

Si la instancia no tiene datos, puede seguir el procedimiento Agregar miembros a un conjunto de réplicas autoadministradas o Reemplazar un miembro de un conjunto de réplicas autoadministradas para agregar un nuevo miembro a un conjunto 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. Eliminar todos los datos y subdirectorios del dbPath directorio del miembro.

  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 instantánea. Para obtener información sobre cómo capturar una instantánea consistente de una mongod instancia en ejecución, consulte la documentación "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

Forzar un primario

En esta página