The mongosync program uses change streams to synchronize data between source and destination clusters. mongosync does not access the oplog directly, but when a change stream returns events from the past, the events must be within the oplog time range.
mongosync aplica operaciones en el oplog sobre los datos en la clúster de destino después de la fase de copia de colección. Cuando las operaciones que mongosync no ha aplicado se eliminan del oplog en el clúster de origen, la sincronización falla y mongosync termina.
Nota
mongosync does not replicate applyOps operations made on the source cluster during sync to the destination cluster.
If you anticipate syncing a large data set, or if you plan to pause synchronization for an extended period of time, you might exceed the oplog window. Use the oplogSizeMB setting to increase the size of the oplog on the source cluster.
Considerations
El clúster de destino debe disponer de suficiente almacenamiento en disco para albergar el tamaño lógico de los datos que se migran y las entradas de destino de oplog desde la sincronización inicial. Por ejemplo, para migrar 10 GB de datos, el clúster de destino debe tener al menos 10 GB disponibles para los datos y otros 10 GB para las entradas de oplog de inserción de la sincronización inicial.
Para usar la verificación integrada, debes tener un oplog más grande en el destino. Si activas el verificador incorporado y reduces el tamaño del oplog de destino, es posible que el verificador incorporado no pueda mantenerse al día, lo que puede causar que mongosync genere un error.
Si necesitas reducir la sobrecarga de los registros del destino del oplog y el verificador incorporado está desactivado, puedes:
Use the
oplogSizeMBsetting to lower the destination cluster's oplog size.Use to
oplogMinRetentionHourssetting to lower or remove the destination cluster's minimum oplog retention period.
Supervise el tamaño de oplog necesario para la sincronización inicial
Determine oplog window
To get the difference in seconds between the first and last entry in the oplog run db.getReplicationInfo(). If you are replicating a sharded cluster, run the command on each shard.
db.getReplicationInfo().timeDiff
El valor devuelto es la ventana mínima de oplog para el clúster. Si hay varias particiones, el número más bajo es la ventana mínima oplog.
Determinar el atraso de la replicación de mongosync
Para obtener el valor de lagTimeSeconds, ejecuta el comando /progress. El tiempo de retardo es el tiempo en segundos entre el último evento aplicado por mongosync y el momento del último evento actual en el clúster de origen.
Es una medida de qué tan atrasado está el clúster de origen mongosync.
Validar el tamaño del oplog
Si el tiempo de espera se acerca a la ventana mínima oplog, realice uno de los siguientes cambios:
Increase the
oplogwindow. UsereplSetResizeOplogto setminRetentionHoursgreater than the currentoplogwindow.Nota
replSetResizeOplogis unsupported in Atlas. To resize the oplog in Atlas, see Set Minimum Oplog Window.Escala la instancia
mongosync. Agrega CPU o memoria para escalar el nodomongosyncy que tenga una velocidad de copia más alta.
Nota
La ventana oplog y la tasa de cambio para el atraso de la replicación pueden variar durante la sincronización. Repita estos pasos durante una migración para supervisar el progreso.