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 versiones de servidor locales que cambien la versión principal o secundaria durante una migración. mongosync sí permite actualizaciones de versiones de parche. Para obtener más información, consulte Instrucciones de 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 se esté ejecutando.

  • Si desea iniciar el proceso de confirmación y no enableUserWriteBlocking "sourceAndDestination" configuró en cuando utilizó el punto start final, debe evitar las escrituras en el clúster de origen antes de iniciar el proceso de confirmación.

  • Las colecciones del sistema.* 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.

  • No se admite un nivel compartido de MongoDB.

  • 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 para establecer notablescan a false tanto en el clúster de origen como en el de destino.

  • 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 se puede sincronizar una colección con ningún documento que tenga una marca de tiempo vacía, como Timestamp(0,0) en clústeres de origen anteriores a6.0.

  • mongosync No se admiten documentos con nombres de campo duplicados. Para más información, consulte MongoDB no admite nombres de campo duplicados.

  • mongosync no admite la migración de un espacio de nombres a un clúster de destino que ya contiene un espacio de nombres en conflicto.

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.

  • 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 _id campo debe ser único en todos los fragmentos del clúster. Consulte Clústeres fragmentados e índices únicos para obtener más información.

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

  • Si el clúster de origen o destino es un clúster fragmentado y no está ejecutando mongosync con filtrado de espacio de nombres, debe deshabilitar el equilibrador del clúster de origen ejecutando el comando y balancerStop esperando 15 minutos para que se complete el comando.

    Si el clúster de origen o destino es un clúster fragmentado y se ejecuta con filtrado de mongosync espacios de nombres, se puede habilitar globalmente el balanceador del clúster de origen, pero debe deshabilitarlo para todas las colecciones dentro del filtro de espacios de nombres. Consulte Deshabilitar el balanceador para colecciones en la sincronización filtrada. También se puede deshabilitar por completo el balanceador del clúster de origen.

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

  • Si ha habilitado el balanceador del clúster de origen, pero lo ha deshabilitado para las colecciones dentro del filtro de espacio de nombres, no ejecuteshardCollectionen las colecciones dentro del filtro de espacio de nombres. Si ejecutashardCollectionen las colecciones dentro del filtro de espacio de nombres durante la migración, mongosync devuelve un error y se detiene, lo que requiere que inicie la migración desde cero.

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

  • La cantidad máxima de índices por colección fragmentada es,63 que es uno menos que el límite predeterminado 64 de.

  • mongosync No admite colecciones con una intercalación distinta a la predeterminada en clústeres fragmentados. Esto aplica tanto a colecciones fragmentadas como no fragmentadas.

  • mongosync errores en índices que son inconsistentes o faltan en algunos fragmentos que contienen datos.

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

  • Si la fuente antigua tiene índices únicos distribuidos parcialmente entre fragmentos, la reversión puede causar fallos. Asegúrese de que existan índices únicos en todos los fragmentos 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 con 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 de iniciarse a menos que establezca el parámetro preExistingDestinationData en true cuando llame /start a.

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

  • 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 se pueden especificar colecciones del sistema ni bases 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 1.3.0 de, Mongosync admite colecciones limitadas con algunas limitaciones.

Las colecciones limitadas en el clúster de origen funcionan normalmente 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 eliminación 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 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.

  • Construya el índice en la fuente durante la migración con una compilación de índice predeterminada.

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

  • Al migrar de un conjunto de réplicas a un clúster fragmentado, no se pueden cambiar los nombres de las colecciones de origen especificadas en las opciones de fragmentación. Si se cambia el nombre de una colección incluida en las opciones de fragmentación durante la fase de CEA, el verificador informa de una discrepancia en la fragmentación.

  • Si inicia 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 ocurrir después de llamar al punto de conexión /start o mucho más tarde, por ejemplo, cuando un usuario crea un índice TTL en el clúster de origen durante una migración en curso.

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

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

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 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 consultas persistentes (PQS), introducida en MongoDB.8.0 Si su clúster de origen usa PQS, debe migrarla 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:

  • El clúster de origen no puede tener documentos huérfanos. Para eliminarlos, ejecute el comando en cleanupOrphaned las mongod instancias del nodo principal de cada fragmento en su clúster de origen. Espere a que este comando se complete con el estado {ok:1} antes de iniciar la migración.

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

  • El punto final/reverse no es compatible. No se puede habilitar la reversible opción 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".

Volver

Dirección para sincronizar a la inversa

En esta página