Esta página responde a algunas preguntas frecuentes. Si tiene alguna pregunta adicional, póngase en contacto con el soporte de MongoDB.
¿Puedo cambiar el nivel de carga mientras? mongosync ¿está sincronizando?
Sí, puede ajustar el nivel de carga de trabajo del clúster durante una migración siguiendo los pasos en Reconfigurar mongosync durante la sincronización.
¿Puedo realizar lecturas o escrituras en mi clúster de destino mientras mongosync se está sincronizando?
mongosync combina y reordena escrituras desde el origen hasta el destino durante la sincronización, y modifica temporalmente las características de la colección. Como resultado, mongosync no puede garantizar que el destino coincida con el origen, incluida una versión desactualizada del origen, en ningún momento durante la sincronización, incluso si la sincronización está en pausa. Para aceptar de manera segura el tráfico en las colecciones migradas en el clúster de destino, espera a que la migración commit. Para obtener más información, consulta Consideraciones intermedias de sincronización.
Realizar escrituras en las colecciones migradas del clúster de destino durante la sincronización genera un comportamiento indefinido. mongosync bloquea las escrituras en el clúster de destino de forma predeterminada. Para obtener más información sobre el bloqueo de escritura, consulte Bloqueo de escritura starty.
Tras la confirmación, solo es seguro escribir en las colecciones migradas del clúster de destino canWrite cuando true es. Para comprobar el valor de,canWrite ejecute el punto progress final.
Para obtener más información sobre las lecturas y escrituras permitidas durante la sincronización, consulte Lecturas y escrituras.
Nota
Las compilaciones de índices en el clúster de destino se tratan como escrituras mientras mongosync se sincroniza.
¿Puedo usar mongosync para la sincronización continua entre dos clústeres MongoDB?
Por ejemplo, ¿puedo mantener un clúster secundario para recuperación ante desastres, análisis u otros casos de uso similares?
No, mongosync está diseñado para admitir migraciones únicas. mongosync debe tener commit para aceptar de forma segura el tráfico de lectura o escritura a las colecciones migradas en el clúster de destino. Por lo tanto, la recuperación ante desastres, el análisis y otros casos de uso similares no son flujos de trabajo compatibles mongosync con.
Para más información, consulte ¿Puedo realizar lecturas o escrituras en mi clúster de destino mientras mongosync está sincronizando?
¿Por qué los índices del clúster de destino son más grandes que los índices del clúster de origen?
Los siguientes factores pueden contribuir a un aumento en el tamaño del índice en los clústeres de destino:
mongosyncInserta y elimina datos durante una migración, lo que puede provocar que los datos se almacenen de manera ineficiente en el disco.De forma predeterminada,
mongosynccrea índices antes de copiar los datos.mongosynccopia los datos en_idorden. Si un índice no está correlacionado_idcon, su tamaño puede aumentar. Para obtener más información, consulte la página de Preguntas frecuentes del Manual de MongoDB: Índices.
Utiliza los siguientes métodos para mitigar un aumento en el tamaño del índice:
Reinicie la migración con el
buildIndexesparámetro establecidoneveren. Al finalizar la migración, cree índices manualmente en el clúster de destino.Después de la migración, realice una sincronización inicial continua en el clúster de destino.
Tras la migración, ejecute compact (comando de base de datos) en el clúster de destino. Esto reconstruye los índices y libera espacio de disco innecesario para el sistema operativo, pero puede afectar el rendimiento del clúster.
¿Puede mongosync funcionar en su propio hardware?
Sí, mongosync puede ejecutarse en su propio hardware. mongosync no necesita ejecutarse en los servidores que alojan sus instancias de MongoDB. Cuando mongosync se ejecuta en su propio hardware, puede usar un sistema operativo (SO) diferente al de los clústeres de origen o destino.
¿Qué especificaciones de hardware debe tener el clúster de destino?
Para la mayoría de las migraciones, el clúster de destino debe tener especificaciones de hardware más altas que el clúster de origen, incluidas las siguientes propiedades:
CPU
Memoria
Disk I/O
Estas especificaciones de hardware garantizan que el clúster de destino puede gestionar mongosync escrituras y que la sincronización puede mantenerse al ritmo de la carga de trabajo del clúster de origen.
El clúster de destino debe tener suficiente almacenamiento en disco para acomodar el tamaño de los datos lógicos que se migrarán y las entradas del registro de operaciones de destino de 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 del registro de operaciones de inserción de la sincronización inicial.
Para usar la verificación integrada, debe tener un registro de operaciones más grande en el destino. Si habilita el verificador integrado y reduce el tamaño del registro de operaciones de destino, es posible que el verificador integrado no pueda mantener el ritmo, lo que provocará mongosync el error.
Si necesita reducir la sobrecarga de las entradas del registro de operaciones de destino y el verificador incorporado está deshabilitado, puede:
Utilice la
oplogSizeMBconfiguración para reducir el tamaño del registro de operaciones del clúster de destino.Utilice la configuración para reducir o eliminar el período mínimo de retención del registro de operaciones del clúster de
oplogMinRetentionHoursdestino.
¿Debo aumentar el tamaño de en oplog el clúster de origen?
mongosync Aplica las operaciones del oplog en el clúster de origen a los datos del clúster de destino después de la fase de copia de recopilación. Cuando las operaciones que mongosync no se han aplicado en el se eliminan del oplog en el clúster de origen, la sincronización falla y el mongosync finaliza.
Nota
mongosync no replica operaciones realizadas en el clúster de origen durante la sincronización con el clúster de applyOps destino.
Si prevé sincronizar un conjunto de datos grande o si planea pausar la sincronización durante un período prolongado, podría exceder la ventana del registro de operaciones. Use la configuración para aumentar el tamaño de oplogSizeMB en oplog el clúster de origen.
¿Qué opciones de cadena de conexión mongosync permite?
mongosync requiere readConcern: "mayoría" y writeConcern: "mayoría".
Si readConcern no es majority, mongosync devuelve un error:
Invalid URI option, read concern must be majority
Si writeConcern no es majority, mongosync devuelve un error:
Invalid URI option, write concern must be majority
mongosync Acepta todas las demás opciones de cadena de conexión.
¿ mongosync admite la compresión de red?
mongosync Admite la compresión de red y la habilita de forma predeterminada. Sin embargo, las configuraciones del clúster deben compartir al menos un compresor común.
Para obtener más información sobre las opciones de configuración de compresión de red, consulte la opción en el Manual de la base de --networkMessageCompressors datos.
¿Qué opciones de seguridad y autenticación son compatibles?
mongosync utiliza una cadena de conexión estándar de MongoDB para conectar el origen y los clústeres de destino.
Se admiten LDAP y X.509 Para conocer las opciones de autenticación disponibles, consulte Autenticación en implementaciones autogestionadas.
¿ mongosync se reinicia automáticamente en caso de error?
mongosync no se reinicia automáticamente en caso de error. Sin embargo, se puede escribir un script o usar los administradores de procesos del sistema operativo, systemd, por ejemplo, para reiniciar el proceso mongosync.
El binario mongosync no tiene estado. Los metadatos para reiniciar se almacenan en el clúster de destino.
Una operación mongosync se puede reanudar si mongosync deja de estar disponible durante la sincronización. Cuando mongosync vuelva a estar disponible, reinicie el proceso mongosync con los mismos parámetros. mongosync reanuda la operación desde donde se detuvo cuando mongosync dejó de estar disponible.
Nota
A partir mongosync 1.7.3 de, mongosync puede tardar al menos dos minutos en responder al reanudar o reiniciar una operación de sincronización. Durante este tiempo, cualquier llamada al punto final podría fallar. Si progress una progress llamada falla, es seguro volver a intentarlo.
¿Puede el origen o el destino ser un conjunto de réplicas con árbitros?
Sí, el conjunto de réplicas puede tener árbitros. El conjunto de réplicas de origen debe tener más de 2 nodos que no sean árbitros y debe sincronizar desde uno de ellos. Utilice la cadena de conexión del clúster de origen para especificar una preferencia de lectura para un nodo que no sea árbitro y que contenga datos.
¿Qué pasa si veo una advertencia de operación lenta?
Las advertencias de operación lenta pueden aparecer durante la sincronización inicial o la aplicación de un evento de cambio cuando se produce una operación de lectura lenta en el clúster de origen o una operación de escritura lenta en el clúster de destino. La advertencia puede indicar congestión de la red o sobrecarga de recursos en el clúster de origen o de destino.
Si bien estas advertencias no indican fallas en sí mismas, las operaciones lentas pueden provocar errores de tiempo de espera de operación en mongosync y fallas de migración.
Si ve advertencias de funcionamiento lento, compruebe el uso de la CPU, la memoria y la red en los clústeres de origen y destino. Si los clústeres no tienen suficiente capacidad para sus necesidades, considere actualizar el hardware del clúster.
¿Debo detener una migración si los registros contienen la palabra "error" o "failure"?
No, los registros que contienen la palabra "error" o "fallo" muestran errores no fatales y no indican que deba detener mongosync antes de tiempo. Estos registros no indican que mongosync esté fallando o corrompiendo datos. Si se produce un error fatal, mongosync detiene la sincronización y escribe una entrada de registro fatal.
¿Qué pasa si veo muchos errores de claves duplicadas en los registros?
Los errores de clave duplicada son normales durante el proceso de sincronización. Estos errores pueden ocurrir si:
Inserta un documento en el clúster de origen después de que se inicia
mongosync.mongosyncpuede copiar directamente el documento y aplicar de manera redundante el evento de cambio de inserción para el documento más adelante.Se detiene y se reanuda
mongosync. Esto puede provocar inserciones duplicadas al reiniciarmongosync.mongosyncencuentra un error transitorio y vuelve a intentar una inserción que posiblemente ya haya tenido éxito.
¿Qué debo hacer si mongosync devuelve un error fatal?
Un error fatal indica un problema que debe corregirse y requiere reiniciar la migración. Tras solucionar el error, elimine todos los datos migrados en el clúster de destino, incluida la base de datos mongosync_reserved_for_internal_use. A continuación, reinicie mongosync e inicie una nueva migración.
¿ mongosync admite índices TTL?
Mongosync admite la sincronización de índices TTL desde el clúster de origen al de destino.
¿Puedo personalizar las distribuciones de fragmentos al sincronizar en un clúster fragmentado?
No, no puede configurar mongosync para personalizar distribuciones de fragmentos en un clúster fragmentado de destino. mongosync toma muestras de cada colección durante la inicialización para determinar cómo distribuir los documentos de manera eficiente entre los fragmentos del clúster de destino después de la migración.