使用迁移验证器进行验证
迁移验证程序连接到源集群和目标集群,并执行一系列验证检查,比较文档、视图和索引,以确认同步成功。
与其他验证方法不同,迁移验证程序可以与 mongosync
同时运行,在同步时检查目标集群上的文档。 这可以减少在将应用程序负载从源集群转移到目标集群之前验证同步是否成功所需的时间。
关于此任务
注意
Migration Verifier 不支持DDL 操作。使用 Migration Verifier 验证数据时,请勿在源集群上运行任何 DDL 操作。
迁移验证器是一种实验性且不受支持的工具。
有关安装说明和使用限制,请参阅 GitHub。
步骤
1
同步集群
使用mongosync
同步源集群和目标集群。 有关更多信息,请参阅 Cluster-to-Cluster Sync快速入门。
2
等待mongosync
到达 CEA
必须等到mongosync
到达变更事件应用程序 (CEA) 阶段,然后才能开始使用迁移验证程序进行验证检查。
要检查mongosync
是否已达到 CEA 阶段,请发送/progress命令并检查progress.info
字段是否返回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" } } }
3
4
5
6
检查进度
要查看结果,请使用 cURL 将progress
命令发送到 Migration 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 } } }
当phase
字段为idle
时,验证检查已完成。 如果failedTasks
字段返回 0,则同步成功。