Docs Menu
Docs Home
/
MongoDB Cluster-to-Cluster Sync
/ /

移行検証子による検証

項目一覧

  • このタスクについて
  • 手順
  • 詳細

Migration Verifier は、ソースクラスターと宛先クラスターに接続し、ドキュメント、ビュー、インデックスを比較して同期が成功したことを確認する一連の検証チェックを実行します。

他の検証方法と違い、移行検証ツールは mongosyncと同時に実行でき、同期ごとに宛先クラスター上のドキュメントをチェックします。 これにより、アプリケーションの負荷をソースクラスターから宛先クラスターに転送する前に、同期の成功を確認するために必要な時間を短縮できます。

注意

Migration Verifier は DDL 操作をサポートしていません。 Migration Verifier でデータを検証している間は、ソースクラスターで DDL 操作を実行しないでください。

Migration Verifier は実験的なツールであり、サポートされていないツールです。

インストール手順と使用制限については、 GitHub を参照してください。

1

mongosyncを使用してソースクラスターと宛先クラスターを同期します。 詳しくは、「 Cluster-to-Cluster Sync クイックスタート 」を参照してください。

2

Migration Verifier による検証チェックを開始する前に、 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

migration-verifierプロセスを開始します。

migration-verifier --verifyAll \
--srcURI example.net:27020 \
--destURI example.net:27021 \
--metaURI example.net:27017
4

検証チェックを開始するには、cURL を使用してcheckコマンドを移行検証子に送信します。

curl -H "Content-Type: application/json" \
-X POST -d '{}' http://127.0.0.1:27020/api/v1/check
5

同期が完了し、 mongosyncCOMMITTED状態に達したら、cURL を使用してwritesOffコマンドを移行検証子に送信します。

curl -H "Content-Type: application/json" \
-X POST -d '{}' http://127.0.0.1:27020/api/v1/writesOff
6

結果を表示するには、cURL を使用してprogressコマンドを移行検証子に送信します。

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 を返す場合、同期は成功しました。

戻る

ハッシュ比較の使用