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 versiones del servidor MongoDB.

  • mongosync no admite actualizaciones de versión de servidor en el lugar que cambian la versión principal o secundaria durante una migración. mongosync sí permite actualizaciones de versiones patch. Para obtener más información, consulta las instrucciones de actualización del servidor.

  • El clúster de destino debe estar vacío.

  • 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 se esté ejecutando.

  • 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 admiteel cifrado consultable.

  • No se puede sincronizar una colección que tenga un índice único y un índice no único definido en los mismos campos.

  • Antes de intentar ejecutar mongosync con un clúster Atlas M10+, desactive la Require Indexes for All Queries opción.

  • mongosync No sincroniza usuarios ni roles.

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

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

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

  • mongosync no admite la sincronización de índices de búsqueda de 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 se admiten documentos con nombres de campo duplicados. Para más información, consulte MongoDB no admite nombres de campo duplicados.

MongoDB no prueba Mongosync con compilaciones comunitarias y, en la mayoría de los casos, no ofrece soporte para Mongosync con implementaciones comunitarias. Si desea usar Mongosync con MongoDB Community Edition, contacte con un representante de ventas de MongoDB para hablar sobre los requisitos y las opciones personalizadas.

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

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

  • mongosync No admite la sincronización desde un clúster fragmentado a un conjunto de réplicas.

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

  • mongosync No admite la sincronización hacia o desde clústeres globales.

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

    • mongosync Permite a los usuarios renombrar las colecciones que sharding.shardingEntries incluye la opción durante la sincronización, con algunas limitaciones. Para más información,consulte "Renombrar durante la sincronización".

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

    • Si desea crear un índice para admitir claves de fragmentos manualmente, debe crear el índice antes de que comience mongosync o después de que se complete la migración y mongosync se haya detenido.

  • 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.

  • El movePrimary comando no se puede utilizar para reasignar el fragmento principal 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 índices que tienen especificaciones de índice consistentes en todos los fragmentos.

    Nota

    Para comprobar si hay inconsistencias en el índice, consulte Buscar índices inconsistentes en distintos fragmentos.

  • Debe detener el balanceador en los clústeres de origen y destino fragmentados durante toda la vida útil de una migración. Para detenerlo, ejecute el comando y espere a que se balancerStop complete.

    Nota

    Después de detener el balanceador, espera quince minutos antes de iniciar mongosync. Esto le da al clúster tiempo para finalizar cualquier migración de fragmentos en curso.

  • mongosync no admite la ejecución del comando transitionFromDedicatedConfigServer durante la ejecución.

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

  • La clave de fragmento no se puede refinar durante la sincronización.

  • Las operaciones del clúster de origen no se admiten durante la reshardCollection 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 fragmentadas que tengan configuraciones de intercalación predeterminadas.

  • 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 fragmentos. No se puede revertir la sincronización cuando los clústeres tienen topologías o versiones principales diferentes.

  • Para invertir la dirección, requieremongosync que todos los índices únicos en el clúster de origen _id (excepto) no tengan claves de índice únicas 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 mongosync y un clúster de destino en otra instancia mongosync.

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

  • El clúster de destino no debe contener datos de usuario antes del inicio.

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

  • No se puede modificar un filtro en uso. Para crear un filtro nuevo, consulte: Reemplazar un filtro existente.

  • Solo se pueden renombrar colecciones en ciertas situaciones. Para más información, consulte: Agregar y renombrar colecciones.

  • Si un filtro incluye una vista, pero no la colección base, solo los metadatos de la vista se sincronizan con el clúster de destino. Para incluir los documentos de la 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 usar la $out etapa de agregación o el comando (cuando mapReduce se configura para crear o reemplazar una colección) con filtrado, debe configurar el filtro para que use toda la base de datos. No puede limitar el filtro a colecciones dentro de la base de datos.

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

  • El filtrado no admite el bloqueo de escritura dual. Puede usar el bloqueo de escritura solo en el 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 limitadas 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 la cantidad máxima de documentos y el tamaño máximo de documentos durante la confirmación.

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

Si ejecuta un comando en el clúster de origen, este cambio no se aplica directamente al clúster de destino. En su lugar, Mongosync elimina las colecciones de usuarios y las vistas de la base de datos del clúster de destino, pero no las colecciones del sistema en esa base de dropDatabase 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 habilita la creación de perfiles, la colección system.profile permanece.

  • Si crea vistas en el clúster de origen y luego elimina la base de datos, al replicar la eliminación se eliminan las vistas, pero se 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 anteriores devuelven un error si el clúster de destino contiene una __mdb_internal_atlas base de datos no vacía. Esta es una base de datos interna utilizada por MongoDB Atlas. Podría recibir un error."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, lo que ignora automáticamente todas las bases de datos internas.

mongosync No se admiten compilaciones de índices continuas durante la migración. Para evitar la compilación continua de índices durante la migración, utilice uno de los siguientes métodos para garantizar que los índices de destino coincidan con los 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.

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

A partir de 1.9, mongosync puede usar un verificador incorporado para confirmar la sincronización exitosa de las recopilaciones del clúster de origen al 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 memoria, lo que puede generar una sobrecarga de memoria significativa. Para ejecutar el verificador, mongosync requiere aproximadamente 10 GB de memoria, más 500 MB adicionales por cada 1 millones de documentos.

  • El verificador no se puede reanudar. Si un usuario detiene o pausa la sincronización y luego reinicia mongosync por cualquier motivo, el proceso de verificación se reinicia desde el principio. Esto puede provocar que la verificación se retrase considerablemente con respecto a la migración.

  • 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, debe iniciar la sincronización con el verificador deshabilitado.

  • Si realiza una actualización en vivo desde cualquier versión anterior a 1.9.0, mongosync deshabilita la verificación incorporada.

El verificador no comprueba los siguientes espacios de nombres:

  • Colecciones limitadas

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

  • Colecciones que no utilizan la intercalación predeterminada

  • Vistas

El verificador no revisa las siguientes funcionalidades de colección:

  • Metadatos de la colección

  • Indexes

Para verificar los datos y metadatos anteriores, cree comprobaciones adicionales para estas colecciones y sus características. Para obtener más información, consulte Verificar la transferencia de datos.

Nota

A partir de la 1.10 versión, el verificador busca inconsistencias en los datos de un evento DDL ocurrido en el clúster de origen anterior a la 6.0 durante la migración. Esto se debe a que las migraciones anteriores a la6.0 no admiten eventos DDL.

Para obtener más información, consulte 6.0 Limitaciones de migración anteriores a.

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 1.10 de, mongosync admite migraciones desde clústeres de origen que ejecutan versiones del servidor MongoDB anteriores 6.0 a. Para obtener información sobre las rutas de migración compatibles, consulte Compatibilidad de versiones del servidor MongoDB.

Las siguientes limitaciones se aplican a las migraciones anteriores a6.0:

  • Las escrituras que generan eventos DDL 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,mapReduce como, y. También incluye colecciones creadas implícitamente a partir de inserciones. Durante la migración, solo$out $mergese pueden realizar operaciones de escritura que generen eventos CRUD.

    Nota

    Se permiten escrituras que produzcan eventos DDL en colecciones de origen 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 se puede establecer la opción enableUserWriteBlocking en "sourceAndDestination" en la solicitud /start, por lo que no se admite el bloqueo de escritura dual. Se admite el bloqueo de escritura solo en el destino. Asegúrese de que no se realice ninguna escritura en el clúster de origen después de llamar al punto final /commit.

  • No se puede habilitar el createSupportingIndexes parámetro de fragmentación. En su lugar, cree un índice compatible con su clave de fragmentación en el clúster de origen.

  • Si hay índices con especificaciones inconsistentes o que faltan en uno o más fragmentos, mongosync devuelve un error. Para comprobar si hay inconsistencias en los índices,consulte "Detectar índices inconsistentes en distintos fragmentos".

  • El clúster de origen no puede tener documentos huérfanos. Para eliminarlos, ejecute el comando en cleanupOrphaned el clúster de origen.

Volver

Dirección para sincronizar a la inversa

En esta página