Docs Menu
Docs Home
/ /
Mantener
/ / /

Configura el objetivo de sincronización de un secundario autogestionado

Los secundarios capturan datos del miembro principal para mantener una copia actualizada de los datos de los conjuntos. Sin embargo, de forma predeterminada, los secundarios pueden cambiar automáticamente sus destinos de sincronización a miembros secundarios según los cambios en el tiempo de ping entre los miembros y el estado de la replicación de otros miembros. Consulte Sincronización de datos del conjunto de réplicas y replicación encadenada autogestionada para obtener más información.

En algunas implementaciones, implementar una topología de sincronización de replicación personalizada puede ser más eficaz que la lógica de selección de destino de sincronización predeterminada. MongoDB permite especificar un host como destino de sincronización.

Para anular temporalmente la lógica de selección del objetivo de sincronización predeterminado, puede configurar manualmente el objetivo de sincronización de un miembro secundario para que extraiga temporalmente las entradas del registro de operaciones. Las siguientes opciones proporcionan acceso a esta funcionalidad:

Para que replSetSyncFrom/rs.syncFrom() anule el objetivo de sincronización predeterminado, debesettings.chainingAllowed establecerse true en.

Si settings.chainingAllowed se establece false en, replSetSyncFrom/rs.syncFrom() devuelve ok:1 pero no establece el objetivo de sincronización.

A partir de MongoDB 5.0.2, puede anular settings.chainingAllowed estableciendo el parámetro de servidor enableOverrideClusterChainingSetting en true. Esto permite la sincronización desde un miembro secundario incluso si settings.chainingAllowed es false.

Si hay una operación de sincronización inicial en curso cuando ejecuta replSetSyncFromrs.syncFrom()/, replSetSyncFrom/rs.syncFrom() detiene la sincronización inicial en curso y reinicia el proceso de sincronización con el nuevo destino.

Modifique la lógica de sincronización predeterminada únicamente cuando sea necesario y tenga siempre cuidado.

El miembro desde el que se realizará la sincronización debe ser una fuente válida para los datos del conjunto. Para sincronizar desde un miembro, este debe:

  • Tiene datos. No puede ser árbitro, ni en modo de inicio ni de recuperación, y debe poder responder consultas de datos.

  • Ser accesible.

  • Sea miembro del mismo conjunto en la configuración del conjunto de réplicas.

  • Construya índices con la members[n].buildIndexes configuración.

  • Un miembro diferente del conjunto, para evitar la sincronización desde sí mismo.

Si intentas replicar desde un nodo que tiene más de 10 segundos de retraso con respecto al nodo actual, mongod registrará un registro de advertencia, pero aún así replicará desde el nodo rezagado. Consulta también atraso de la replicación y control de flujo.

replSetSyncFrom/rs.syncFrom() proporciona una anulación temporal del comportamiento predeterminado. volverá al comportamiento de sincronización predeterminado en las siguientesmongod situaciones:

  • La mongod instancia se reinicia.

  • La conexión entre y el destino de sincronización se mongod cierra.

  • Si el objetivo de sincronización se queda más de 30 segundos detrás de otro miembro del conjunto de réplicas.

Para utilizar el replSetSyncFrom comando mongosh en:

db.adminCommand( { replSetSyncFrom: "hostname<:port>" } );

Para utilizar el rs.syncFrom() ayudante mongosh en:

rs.syncFrom("hostname<:port>");

Volver

Cambiar nombre de host

En esta página