Descripción
replSetSyncFromReemplaza temporalmente el destino de sincronización por defecto para el
mongodactual. Esta operación es útil para probar diferentes patrones y en situaciones donde un nodo no se está replicando desde el host deseado.Tip
En
mongosh, este comando también se puede ejecutar a través del método auxiliarrs.syncFrom().Los métodos auxiliares son prácticos para los usuarios de
mongosh, pero es posible que no proporcionen el mismo nivel de información que los comandos de la base de datos. En los casos en que no se necesite esta comodidad o se requieran los campos de retorno adicionales, utilice el comando de la base de datos.
Compatibilidad
Este comando está disponible en implementaciones alojadas en los siguientes entornos:
MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB
MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.
Importante
Este comando no es compatible con los clústeres de MongoDB Atlas. Para obtener información sobre la compatibilidad de Atlas con todos los comandos, consulte Comandos no compatibles.
Sintaxis
El comando tiene la siguiente sintaxis:
db.adminCommand( { replSetSyncFrom: "hostname<:port>" } )
Campos de comandos
El comando toma el siguiente campo:
Comportamiento
Limitaciones
Para que replSetSyncFrom anule el destino de sincronización predeterminado, settings.chainingAllowed debe establecerse en true.
Si settings.chainingAllowed se establece en false, replSetSyncFrom devuelve ok:1 pero no establece el objetivo de sincronización.
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.
Lógica de sincronización
Si se está llevando a cabo una operación de sincronización inicial cuando ejecuta replSetSyncFrom, replSetSyncFrom detiene la sincronización inicial en curso y reinicia el proceso de sincronización con el nuevo destino.
Modifica solamente la lógica de sincronización por defecto cuando sea necesario, y siempre actúa con precaución.
Objetivo
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.
Persistencia
replSetSyncFrom proporciona una anulación temporal del comportamiento predeterminado. mongod volverá al comportamiento de sincronización predeterminado en las siguientes situaciones:
Se reinicia la instancia
mongod.La conexión entre el
mongody el destino de sincronización se cierra.Si el objetivo de sincronizar se retrasa más de
maxSyncSourceLagSecs(por defecto 30) segundos con respecto a otro nodo del set de réplicas.
Para obtener más información sobre el uso de replSetSyncFrom, consulte Configurar el destino de sincronización de un servidor secundario autogestionado.