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
/ /

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.

Para algunas implementaciones, implementar una topología de sincronización de replicación personalizada puede ser más efectivo que la lógica de selección de objetivo de sincronización por defecto. MongoDB proporciona la capacidad de especificar un host para usar como objetivo de sincronización.

Para anular temporalmente la lógica de selección del objetivo de sincronización predeterminado, puedes configurar manualmente el objetivo de sincronización de un miembro secundario para extraer temporalmente entradas de oplog. Las siguientes 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 está configurado en false, replSetSyncFrom/rs.syncFrom() devuelve ok:1 pero no configura el destino de sincronizar.

A partir de MongoDB 5.0.2, puedes anular settings.chainingAllowed estableciendo el parámetro del 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 se ejecuta replSetSyncFrom/rs.syncFrom(), replSetSyncFrom/rs.syncFrom() detiene la sincronización inicial en curso y reinicia el proceso de sincronización con el nuevo objetivo.

Modifica solamente la lógica de sincronización por defecto cuando sea necesario, y siempre actúa con precaución.

El nodo desde el que se sincroniza debe ser una fuente válida para los datos del conjunto. Para sincronizar desde un nodo, el nodo debe:

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

  • Sé accesible.

  • Ser nodo del mismo conjunto en la configuración del set de réplicas.

  • Crear un índice con la configuración members[n].buildIndexes.

  • Un nodo diferente del conjunto, para evitar la sincronización de 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 el mongod y el destino de sincronización se cierra.

  • Si el destino de sincronización se retrasa más de 30 segundos con respecto a otro miembro del conjunto de réplicas.

Para usar el comando replSetSyncFrom en mongosh:

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

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

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

Volver

Cambiar nombres de host en un conjunto de réplicas

En esta página