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

Limitaciones

Advertencia

mongosync no verifica el cumplimiento de las limitaciones documentadas. Es importante asegurarse de que la aplicación no se vea afectada por las limitaciones.Ejecutar mongosync en presencia de una de estas limitaciones podría provocar un comportamiento indefinido en el clúster de destino.

Debe respetar estas limitaciones durante toda la migración, incluso cuando la migración esté pausada o detenida si se reanudará.

Nota

Para obtener información sobre la compatibilidad del servidor MongoDB, consulte Compatibilidad de la versión de MongoDB Server.

  • mongosync no admite actualizaciones de versión del servidor in situ que cambian la versión principal o secundaria durante una migración. mongosync permite actualizaciones de versión de parche. Para aprender más, consulta el instrucciones para la actualización del servidor.

  • mongosync no valida que los clústeres o el entorno estén configurados correctamente.

  • Otros clientes no deben escribir en el clúster de destino mientras mongosync esté en ejecución.

  • Si se desea iniciar el proceso de confirmación y no se ha establecido enableUserWriteBlocking en "sourceAndDestination" al utilizar el punto final start, es necesario impedir la escritura en el clúster de origen antes de iniciar el proceso de confirmación.

  • colecciones system.* no se replican.

  • No se admiten documentos que tengan nombres de campos que comiencen con el símbolo dólar ($). Consulte Nombres de campos con puntos y signos de dólar.

  • Los clústeres sin servidor no son compatibles.

  • Un MongoDB Shared nivel no es compatible.

  • No se admite Queryable Encryption.

  • No se puede sincronizar una colección que tenga un índice único y un índice no único definidos en el mismo campo o campos.

  • Antes de intentar ejecutar mongosync con un clúster de Atlas M10+, desactive el Require Indexes for All Queries opción para establecer notablescan a false en ambos clústeres, fuente y destino.

  • mongosync no sincroniza usuarios ni roles.

  • mongosync no replica applyOps las operaciones realizadas en el clúster de origen durante la sincronización con el clúster de destino.

  • mongosync debe leer desde el clúster de origen utilizando la preferencia de lectura primary.

  • mongosync no admite clústeres de origen o destino que estén actualizando actualmente las versiones de MongoDB.

  • mongosync no admite la sincronización de Índices de búsqueda Atlas.

  • mongosync solo admite clústeres que utilizan el motor de almacenamiento WiredTiger.

  • No puedes sincronizar una colección con ningún documento que tenga una marca de tiempo vacía, como Timestamp(0,0) en versiones anteriores a6.0 clúster de origen.

  • mongosync no admite documentos con nombres de campo duplicados. Para más detalles, consulta MongoDB no admite nombres de campos duplicados.

MongoDB no prueba Mongosync con Community builds y en la mayoría de los casos, MongoDB no ofrece asistencia para Mongosync con implementaciones de Community. Si deseas usar Mongosync con MongoDB Community Edition, contacta a un representante de ventas de MongoDB para hablar sobre requisitos y opciones individuales.

  • No se admiten colección de series de tiempo.

  • Las colecciones con índice clusterizado con expireAfterSeconds establecido no son compatibles.

  • mongosync no admite sincronizar desde un clúster a un set de réplicas.

  • mongosync no admite la sincronización con una topología de clúster fragmentado con uno o más árbitros.

  • mongosync no soporta la sincronización hacia o desde clústeres globales.

  • La sincronización de un set de réplicas a un clúster tiene las siguientes limitaciones:

    • mongosync permite a los usuarios cambiar el nombre de las colecciones que la opción sharding.shardingEntries incluye durante la sincronización con algunas limitaciones. Para más detalles, consulta Renombrar durante la sincronización.

    • Si utilizas la opción sharding.createSupportingIndexes, los índices se crean automáticamente en el clúster de destino durante la sincronización. No se pueden crear estos índices posteriormente en el clúster de origen.

    • Si quieres crear un índice para admitir las claves de partición manualmente, debes crear el índice antes de que mongosync comience o después de que se complete la migración y mongosync se detenga.

  • Dentro de una colección, el campo _id debe ser único en todas las particiones del clúster. Consulta Clústeres particionados e índices únicos para obtener más detalles.

  • No se puede utilizar el comando movePrimary para reasignar la partición primaria durante la sincronización.

  • No hay replicación para la configuración de zonas. mongosync replica datos, no hereda zonas.

  • No se pueden agregar ni eliminar particiones mientras se está sincronizando.

  • mongosync solo sincroniza los índices que existen en todas las particiones.

  • mongosync solo sincroniza los índices que tienen especificaciones de índice coherentes en todas las particiones.

    Nota

    Para comprobar la presencia de inconsistencias en los índices, consulta Find Inconsistent Indexes Across Particiones.

  • Si el clúster de origen o de destino es un clúster particionado y no está ejecutando mongosync con filtro de namespace, debe desactivar el balanceador del clúster de origen ejecutando el comando balancerStop y esperar 15 minutos hasta que finalice el comando.

    Si el clúster de origen o destino es un clúster fragmentado y está ejecutando mongosync con filtrado de espacios de nombres, puede habilitar globalmente el equilibrador del clúster de origen, pero debe desactivarlo para todas las colecciones dentro del filtro de espacios de nombres. Consulta Cómo desactivar el balanceador para colecciones en sincronización filtrada. También se puede deshabilitar completamente el balanceador del clúster de origen.

    Siempre debes deshabilitar el balanceador en un clúster de destino particionado usando balancerStop.

  • Si has activado el balanceador del clúster de origen, pero lo has desactivado para las colecciones dentro del filtro de espacio de nombres, no ejecutes shardCollection en las colecciones dentro del filtro de espacio de nombres. Si ejecutas shardCollection en las colecciones dentro del filtro del namespace durante la migración, mongosync devuelve un error y se detiene, lo que requiere que inicies la migración desde cero.

  • mongosync no es compatible con ejecutar el comando transitionFromDedicatedConfigServer durante la ejecución.

  • No debe ejecutar los comandos moveChunk y moveRange en los clústeres de origen o de destino.

  • La clave de partición no puede ser refinada mientras se está sincronizando.

  • Las operaciones reshardCollection del clúster de origen no son compatibles durante la sincronización.

  • El número máximo de índices por colección particionada es 63, que es uno menos que el límite por defecto de 64.

  • mongosync solo admite la sincronización de colecciones particionadas que tienen la configuración por defecto de la intercalación.

  • mongosync errores en los índices que son inconsistentes o faltan en algunas particiones que contienen datos.

  • mongosync falla si hay una ventana de balanceo configurada en el clúster de origen o destino.

  • Si la fuente anterior tiene índices únicos que están parcialmente distribuidos a través de particiones, revertirlo puede causar fallos. Asegúrese de que existan índices únicos en todas las particiones antes de revertir.

  • Los clústeres de origen y destino deben tener el mismo número de particiones. No se puede sincronizar de forma inversa cuando los clústeres tienen diferentes topologías.

  • Los clústeres de origen y destino deben ejecutar la misma versión principal de MongoDB.

  • Para invertir la dirección, mongosync requiere que todos los índices únicos en el clúster de origen (excepto _id) no tengan claves de índice único heredadas.

  • mongosync no admite la sincronización de varios clústeres de origen a un clúster de destino.

  • Un clúster no puede ser simultáneamente un clúster de origen en una instancia de mongosync y un clúster de destino en otra instancia de mongosync.

  • El filtrado no es compatible con la sincronización reversible.

  • El clúster de destino no debe contener datos de usuario antes de comenzar a menos que establezca el parámetro preExistingDestinationData en true al llamar a /start.

  • El clúster de destino no debe contener la base de datos del sistema mongosync_reserved_for_internal_use antes de comenzar.

  • No puede modificar un filtro que esté en uso. Para crear un nuevo filtro, consulta: Reemplazar un filtro existente.

  • Solo puedes renombrar las colecciones en ciertas situaciones. Para más detalles, consulta: Añadir y renombrar colecciones.

  • Si un filtro incluye una vista pero no la colección base, sólo los metadatos de la vista se sincronizan con el clúster de destino. Para incluir los documentos de vista, también debe sincronizar la colección base.

  • No puedes especificar colección del sistema ni base de datos del sistema en un filtro.

  • Para utilizar la etapa de agregación $out o el comando mapReduce (cuando se configura para crear o reemplazar una colección) con filtrado, se debe configurar el filtro para usar la totalidad de la base de datos. No se puede limitar el filtro a las colecciones dentro de la base de datos.

    Para obtener más información, consulte Filtrado con mapReduce y $out.

  • El filtrado no permite el bloqueo doble de escritura. Puedes utilizar el bloqueo de guardar solo de destino.

A partir de 1.3.0, Mongosync admite colecciones con tamaño fijo con algunas limitaciones.

Las colecciones con tamaño fijo en el clúster de origen funcionan con normalidad durante la sincronización.

Las colecciones con tamaño fijo en el clúster de destino tienen cambios temporales durante la sincronización:

  • No hay un número máximo de documentos.

  • El tamaño máximo de colección es 1PB.

mongosync restaura los valores originales para el número máximo de documentos y el tamaño máximo de documento durante el commit.

Mongosync no replica las colecciones de sistema en el clúster de destino.

Si emite un comando dropDatabase en el clúster de origen, este cambio no se aplica directamente en el clúster de destino. En su lugar, Mongosync descarta las colecciones y vistas de usuario en la base de datos en el clúster de destino, pero no descarta las colecciones del sistema en esa base de datos.

Por ejemplo, en el clúster de destino:

  • La operación de descarte no afecta a una. colección creada por el usuario system.js

  • Si habilitas la creación de perfiles, la colección system.profile permanece.

  • Si creas vistas en el clúster de origen y luego descartas la base de datos, replicar el descarte remueve las vistas, pero deja una colección system.views vacía.

En estos casos, la replicación de dropDatabase elimina todas las colecciones creadas por el usuario de la base de datos, pero deja las colecciones del sistema en el clúster de destino.

mongosync 1.17 y versiones anteriores devuelven un error si el clúster de destino contiene una __mdb_internal_atlas base de datos que no está vacía. Esta es una interna base de datos utilizada por MongoDB Atlas. Es posible que recibas un error que indique "found existing data on the destination cluster; the destination cluster must be empty; please drop existing data on the destination and start the migration again".

Para evitar migraciones fallidas, actualice a mongosync 1.18 o posterior, que ignora automáticamente todas las bases de datos internas.

mongosync no admite creación de índices continuos durante la migración. Para evitar crear índices de manera progresiva durante la migración, utiliza uno de los siguientes métodos para asegurarte de que tus índices de destino coincidan con tus índices de origen:

  • Construya el índice en la fuente antes de la migración.

  • Construye el índice en el origen durante la migración con una creación de índices por defecto.

  • Construye el índice en el destino después de la migración.

A partir de 1.9, mongosync puede utilizar un verificador incrustado para confirmar la sincronización exitosa de las colecciones desde el clúster de origen hasta el clúster de destino.

El verificador integrado no está disponible en mongosync 1.8 y anteriores.

Para métodos de verificación alternativos, ve Verificar transferencia de datos.

El verificador integrado tiene las siguientes limitaciones:

  • mongosync almacena el estado del verificador en la memoria, lo que puede causar una sobrecarga significativa de memoria. Para ejecutar el verificador, mongosync requiere aproximadamente 10 GB de memoria, además de 500 MB adicionales por cada 1 millones de documentos.

  • No se puede reanudar el verificador. Si un usuario detiene o pausa la sincroniza y luego inicia mongosync nuevamente por cualquier motivo, el proceso de verificación se reinicia desde el principio. Esto puede hacer que la verificación quede sustancialmente por detrás de la migración.

  • Al migrar de un set de réplicas a un clúster, no puedes renombrar las colecciones de origen que especificas en las opciones de particionado. Si renombras una colección incluida en las opciones de particionado durante la fase de CEA, el verificador informa un desajuste de particionado.

  • Si inicias la sincronización con la verificación habilitada y buildIndexes configurado en never, la migración fallará si mongosync encuentra una colección TTL en el clúster de origen. Esto puede suceder después de que llames al endpoint /start o mucho más tarde, como cuando un usuario crea un índice TTL en el clúster de origen mientras una migración está en curso.

    Para sincronizar colecciones TTL sin crear índices en el clúster de destino, debes iniciar la sincronización con el verificador deshabilitado.

El verificador no comprueba los siguientes espacios de nombres:

  • Colecciones con tamaño fijo

  • Colecciones con índices TTL, incluidos los índices TTL que se agregan o descartan durante la migración

  • Colecciones que no usan la intercalación por defecto

Para verificar colecciones no admitidas, añada código de script adicional para examinar las colecciones. Para obtener más información, consulta Verificar transferencia de datos.

Nota

A partir de la versión 1.10, el verificador verifica inconsistencias de datos provenientes de un evento DDL que ocurrió en el pre-6.0 clúster de origen durante la migración. Esto se debe a que anterior a6.0 las migraciones no admiten eventos DDL.

Para obtener más información, consulte Limitaciones de la migración previas a6.0.

mongosync no migra la Configuración de query Persistente (PQS), que se introdujo en MongoDB 8.0. Si tu clúster de origen utiliza PQS, debes migrarlos manualmente.

A partir de 1.10, mongosync admite migraciones desde clústeres de origen que ejecutan versiones del servidor de MongoDB anteriores a 6.0. Para obtener información sobre las rutas de migración compatibles, consulte Compatibilidad de versiones de MongoDB Server.

Se aplican las siguientes limitaciones al pre-6.0 migración:

  • El clúster de origen no puede tener documentos huérfanos. Para limpiar cualquier documento huérfano, ejecuta el comando cleanupOrphaned en las instancias mongod en el nodo principal de cada partición en su clúster de origen. Espera a que este comando se complete con un estado {ok:1} antes de iniciar la migración.

  • Las escrituras que producen DDL eventos no pueden ocurrir en el clúster de origen durante la migración. Los siguientes eventos no pueden ocurrir:

    • collMod

    • create

    • createIndexes

    • drop

    • dropDatabase

    • dropIndexes

    • refineCollectionShardKey

    • rename

    • reshardCollection

    • shardCollection

    Esto incluye operaciones que pueden crear nuevas colecciones, como mapReduce, $out y $merge. Esto también incluye archivos creados de manera implícita a partir de inserciones. Solo pueden realizarse escrituras que produzcan eventos CRUD durante la migración.

    Nota

    Se permiten escrituras que produzcan eventos DDL en colecciones fuente fuera del filtro de espacio de nombres.

  • geoHaystack los índices no son compatibles.

  • /reverse el endpoint no es compatible. No puede activar la opción reversible en la solicitud /start.

  • No puedes establecer la opción enableUserWriteBlocking en "sourceAndDestination" en la solicitud /start, por lo que el bloqueo dual de escritura no es compatible. Se admite el bloqueo de guardar solo para el destino. Asegúrese de que no se realicen guardados en el clúster de origen después de llamar al punto final /commit.

  • No puedes habilitar el parámetro de particionado createSupportingIndexes. En su lugar, crea un índice para admitir tu clave de partición en el clúster de origen.

  • Si hay algún índice con especificaciones inconsistentes o que falte en una o más particiones, mongosync devuelve un error. Para comprobar inconsistencias de índices, consulta Buscar índices inconsistentes en las particiones.

Volver

Dirección para sincronizar a la inversa

En esta página