ハッシュ比較による検証
ソースクラスターから宛先クラスターに同期されたコレクションの MD 5ハッシュを比較することで、同期を確認できます。 ハッシュの比較により、宛先クラスターがソースからすべての変更を受け取ったことが保証されますが、 dbHash
コマンドはクラスターをロックし、完了するまで追加の書込みを防ぎます。 このプロセスは、 ドキュメント数を使用する検証よりもはるかに遅くなる可能性もあります。
このタスクについて
シャーディングされたクラスターではハッシュ比較はできません。 また、ドキュメント フィールドの順序はさまざまであるため、MongoDB 4.4 またはそれ以前のリリースを使用するスタンドアロン サーバーやレプリカセットでは機能しません。
シャーディングされたクラスターや MongoDB の古いリリースを同期する必要がある場合、またはアプリケーション ワークロードでロックが受け入れられない場合は、別の検証方法を使用します。
手順
1
ソース ハッシュの取得
ソースクラスターでdbHash
コマンドを実行します。 collections
フィールドに、同期に含まれる各コレクションを一覧表示します。 次に、 md5
出力フィールドを返します。
db.runCommand({ dbHash: 1, collections: [ "accounts.us_accounts", "accounts.eu_accounts", ... ]}).md5
d41d8cd98f00b204e9800998ecf8427e
このコマンドを実行しながら、宛先ハッシュを取得します。
2
宛先ハッシュの取得
宛先クラスターでdbHash
コマンドを実行します。 collections
フィールドに、同期に含まれる各コレクションを一覧表示します。 次に、 md5
出力フィールドを返します。
db.runCommand({ dbHash: 1, collections: [ "accounts.us_accounts", "accounts.eu_accounts", ... ]}).md5
d41d8cd98f00b204e9800998ecf8427e
ハッシュに注目してください。