mongosync. Ver el
documentación actual para obtener orientación actualizada sobre mongosync e instrucciones sobre cómo actualizar a la última versión.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á.
Limitaciones generales
Nota
Para obtener información sobre la compatibilidad del servidor MongoDB, consulte Compatibilidad de versiones del servidor MongoDB.
mongosyncNo se admiten actualizaciones locales de la versión del servidor que modifiquen la versión principal o secundaria durante una migración.mongosyncsí permite actualizaciones de versiones de parche. Para obtener más información, consulte las instrucciones de actualización del servidor.El clúster de destino debe estar vacío.
mongosyncNo valida que los clústeres o el entorno estén configurados correctamente.Otros clientes no deben escribir en el clúster de destino mientras
mongosyncse esté ejecutando.Si desea iniciar el proceso de confirmación y no
enableUserWriteBlockingtrueconfiguró en cuando utilizó el puntostartfinal, 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
mongosynccon un clúster AtlasM10+, desactive la Require Indexes for All Queries opción.mongosyncNo sincroniza usuarios ni roles.mongosyncno replica operaciones realizadas en el clúster de origen durante la sincronización con el clúster deapplyOpsdestino.mongosyncdebe leer desde el clúster de origen utilizando laprimarypreferencia de lectura.mongosyncno admite clústeres de origen o destino que actualmente estén actualizando versiones de MongoDB.mongosyncno admite la sincronización de índices de búsqueda de Atlas.mongosyncSolo 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.
MongoDB Community Edition
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.
Tipos de colección no admitidos
No se admiten colecciones de series temporales.
No se admiten colecciones agrupadas con expireAfterSeconds configurado.
Clústeres fragmentados
mongosyncNo admite la sincronización desde un clúster fragmentado a un conjunto de réplicas.mongosyncno admite la sincronización con una topología de clúster fragmentada con uno o más árbitros.mongosyncNo admite la sincronización hacia o desde clústeres globales.Si su clúster ejecuta MongoDB 6.0 o una versión anterior, ejecute el
cleanupOrphanedcomando para limpiar los documentos huérfanos.La sincronización desde un conjunto de réplicas a un clúster fragmentado tiene las siguientes limitaciones:
mongosyncPermite a los usuarios renombrar las colecciones quesharding.shardingEntriesincluye 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
mongosynco después de que se complete la migración ymongosyncse haya detenido.
Dentro de una colección, el
_idcampo debe ser único en todos los fragmentos del clúster. Consulte Clústeres fragmentados e índices únicos para obtener más información.El
movePrimarycomando no se puede utilizar para reasignar el fragmento principal durante la sincronización.No hay replicación para la configuración de zonas.
mongosyncreplica datos, no hereda zonas.No se pueden agregar ni eliminar particiones mientras se está sincronizando.
mongosyncsolo sincroniza los índices que existen en todas las particiones.mongosyncsolo 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
balancerStopcomplete.Nota
Después de detener el balanceador, espere quince minutos antes de iniciar
mongosync. Esto le da tiempo al clúster para finalizar cualquier migración de fragmentos en curso.No debe ejecutar los
moveChunkcomandos y en los clústeres de origen o destino.moveRangeLa clave de fragmento no se puede refinar durante la sincronización.
Las operaciones del clúster de origen no se admiten durante la
reshardCollectionsincronización.La cantidad máxima de índices por colección fragmentada es,63 que es uno menos que el límite predeterminado 64 de.
mongosyncSolo admite la sincronización de colecciones fragmentadas que tengan configuraciones de intercalación predeterminadas.
Revertir
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, requiere
mongosyncque todos los índices únicos en el clúster de origen_id(excepto) no tengan claves de índice únicas heredadas.
Múltiples clústeres
mongosyncNo 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
mongosyncy un clúster de destino en otra instanciamongosync.
Sincronización filtrada
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_useantes 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
$outetapa de agregación o el comando (cuandomapReducese 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.
Colecciones con tamaño fijo
A partir 1.3.0 de, Mongosync admite colecciones limitadas con algunas limitaciones.
convertToCappedNo se admite. SiconvertToCappedejecuta,mongosyncsaldrá con un error.cloneCollectionAsCappedNo es compatible.
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.
Colecciones del sistema
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.jsSi habilita la creación de perfiles, la colección
system.profilepermanece.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.viewsvací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.
Creaciones de índices continuas
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.
Verificador integrado
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.
Compatibilidad
El verificador integrado no está disponible en mongosync 1.8 y anteriores.
Para métodos de verificación alternativos, ve Verificar transferencia de datos.
Limitaciones
El verificador integrado tiene las siguientes limitaciones:
El verificador no admite clústeres fragmentados. Si la migración incluye un clúster fragmentado,
mongosyncdeshabilita el verificador.mongosyncAlmacena el estado del verificador en memoria, lo que puede generar una sobrecarga de memoria significativa. Para ejecutar el verificador,mongosyncrequiere 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
mongosyncpor 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.El punto final /reverse desactiva el verificador. Permanece desactivado tras llamadas adicionales al
/reversepunto final.Si inicia la sincronización con la verificación habilitada y
buildIndexesconfigurado ennever, la migración fallará simongosyncencuentra una colección TTL en el clúster de origen. Esto puede ocurrir después de llamar al punto de conexión/starto 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.
Si realiza una actualización en vivo desde cualquier versión anterior a 1.9.0,
mongosyncdeshabilita la verificación incorporada.
Comprobaciones de verificación no admitidas
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.