Importante
El verificador de migración admite validaciones de migración para las versiones de MongoDB 4.2 y posteriores. Es posible que no funcione correctamente con versiones anteriores.
Migration Verifier se conecta a los clústeres de origen y destino y realiza una serie de comprobaciones de verificación, comparando documentos, vistas e índices para confirmar que la sincronización fue exitosa.
A diferencia de otros métodos de verificación, Migration Verifier puede ejecutarse de manera simultánea con
mongosyncy comprobando los documentos en el clúster de destino a medida que se sincronizan. Esto puede reducir la cantidad de tiempo necesario para verificar el éxito de la sincronización antes de transferir la carga de su aplicación del clúster de origen al de destino.
Acerca de esta tarea
Nota
Migration Verifier no admite operaciones DDL. No ejecutes ninguna operación DDL en el clúster de origen mientras verificas los datos con Migration Verifier.
Para obtener instrucciones de instalación y limitaciones de uso, consulta GitHub.
Pasos
clúster sincronizado
Sincroniza los clústeres de origen y destino usando mongosync. Para más información, consulte Inicio rápido de Mongosync.
Espera a que mongosync alcance la CEA
Antes de poder iniciar las comprobaciones de verificación con el verificador de migración, debe esperar hasta que mongosync llegue a la fase de aplicación del Evento de Cambio (CEA).
Para comprobar que mongosync ha alcanzado la fase CEA, envía el comando /progreso y verifica que el campo progress.info devuelva change event application.
curl localhost:27182/api/v1/progress -XGET
{ "progress": { "state":"RUNNING", "canCommit":true, "canWrite":false, "info":"change event application", "lagTimeSeconds":0, "collectionCopy": { "estimatedTotalBytes":694, "estimatedCopiedBytes":694 }, "directionMapping": { "Source":"cluster0: localhost:27017", "Destination":"cluster1: localhost:27018" } } }
Comprobar progreso
Para ver los resultados, use cURL para enviar el comando progress a migración Verifier.
curl -H "Content-Type: application/json" \ -X GET http://127.0.0.1:27020/api/v1/progress
{ "progress": { "phase": "idle", "error": null, "verificationStatus": { "totalTasks": 1, "addedTasks": 0, "processingTasks": 0, "failedTasks": 0, "completedTasks": 0, "metadataMismatchTasks": 0, "recheckTasks": 0 } } }
Cuando el campo phase es idle, las verificaciones están completas. Si el campo failedTasks da como resultado 0, la sincronización fue exitosa.