Docs Menu
Docs Home
/ /
Mantener
/ / /

Resincroniza el nodo de un set de réplicas autogestionado

Un miembro del conjunto de réplicas se vuelve "obsoleto" cuando su proceso de replicación se retrasa tanto que La función principal sobrescribe las entradas del registro de operaciones que el miembro aún no ha replicado. El miembro no puede recuperarse y queda obsoleto. En este caso, debe resincronizar completamente el miembro eliminando 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

Resincronizar desde el miembro más actualizado en el conjunto de réplicas.

Si resincroniza un nodo con datos obsoletos, este se reincorpora al conjunto de réplicas en un punto posterior al anterior. Es posible que una escritura con confirmación mayoritaria antes de la resincronización ya no esté confirmada. Esto puede provocar la pérdida de datos.

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

Nota

Para evitar cambiar el quórum de escritura, nunca rote más de un miembro del conjunto de réplicas a la vez.

Advertencia

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

Este procedimiento se basa en el proceso habitual de MongoDB para la sincronización de conjuntos de réplicas. Este almacena los datos actuales del miembro. Para obtener una descripción general del proceso de sincronización inicial de MongoDB, consulte la sección "Sincronización de conjuntos 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 puede forzar a un que ya es miembro del conjunto a realizar mongod dbPath una sincronización inicial reiniciando la instancia sin el contenido del directorio:

  1. Detenga la mongod instancia del miembro. Para asegurar un apagado limpio, utilice el db.shutdownServer() método mongosh de mongod --shutdown o, en sistemas Linux, la opción.

  2. (Opcional) Realice una copia de seguridad de todos los datos y subdirectorios del dbPath directorio del miembro. Si no se requiere una copia de seguridad completa, considere respaldar solo el diagnostic.data directorio para conservar datos útiles para la resolución de problemas en caso de que surja un problema. Consulte Captura de datos de diagnóstico a tiempo completo para obtener más información.

  3. Eliminar todos los datos y subdirectorios del dbPath directorio del miembro.

  4. Reinicie el proceso mongod.

En este punto, realiza una sincronización inicial. La duración de esta sincronización depende del tamaño de la base de datos y de la latencia de red entre los miembros del conjunto de mongod réplicas.

Este enfoque genera un miembro nuevo o obsoleto utilizando los archivos de datos de un miembro existente del conjunto de réplicas. Los archivos de datos deben ser lo suficientemente recientes como para permitir que el nuevo miembro se actualice con el registro de operaciones. De lo contrario, el miembro deberá realizar una sincronización inicial.

Puede capturar los archivos de datos como una instantánea o una copia directa. Sin embargo, en la mayoría de los casos, no es posible copiar archivos de una mongod instancia en ejecución a otra, ya que estos cambiarán durante la operación.

Importante

Si copia archivos de datos, asegúrese de que su 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".

Después de copiar los archivos de datos de la fuente "seed", inicie la instanciamongodcon un nuevomembers[n]._idy permita que aplique todas las operaciones del registro de operaciones hasta que refleje el estado actual del conjunto de réplicas. Para ver el estado actual del conjunto de réplicas, utilicers.printSecondaryReplicationInfo()ors.status().

Volver

Forzar una primaria

En esta página