checkpointMetadataConsistency
定義
checkMetadataConsistency
クラスター、データベース、またはコレクションのシャーディングメタデータの整合性に関して一連のチェックを実行します。 コマンドは、 不整合の結果のすべてまたはバッチするが見つかったカーソルを返します。
Tip
mongosh
では、このコマンドはdb.checkMetadataConsistency()
、db.collection.checkMetadataConsistency()
、またはsh.checkMetadataConsistency()
ヘルパーメソッドを通じても実行できます。ヘルパー メソッドは
mongosh
ユーザーには便利ですが、データベースコマンドと同じレベルの情報は返されない可能性があります。 便宜上必要ない場合、または追加の戻りフィールドが必要な場合は、 データベースコマンドを使用します。アップグレードやダウングレードなどの主要なメンテナンス操作の後にこのコマンドを実行し、カタログの状態を確認します。
デフォルトでは、 コマンドはシャード間での整合性についてインデックスをチェックしません。 インデックスを確認するには、
checkIndexes
オプションを設定します。バージョン 7.0 で追加。
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
注意
このコマンドは、すべての MongoDB Atlas クラスターでサポートされています。すべてのコマンドに対する Atlas のサポートについては、「サポートされていないコマンド」を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
構文
クラスター全体でシャーディング メタデータの不整合を確認するには、
admin
データベースから コマンドを実行します。db.adminCommand( { checkMetadataConsistency: 1 } ) データベースでシャーディング メタデータの不整合を確認するには、 データベース コンテキスト から コマンドを実行します。
use cars db.runCommand( { checkMetadataConsistency: 1 } ) シャーディングメタデータの不整合があるコレクションを確認するには、コレクション名を指定して コマンドを実行します。
use library db.runCommand( { checkMetadataConsistency: "authors", } )
コマンドフィールド
フィールド | タイプ | 説明 |
---|---|---|
| 整数または文字列 | チェックするコレクションを指定します。
|
| ブール値 | コマンドがシャーディング メタデータのインデックスもチェックするかどうかを設定します。 詳細については、「 インデックスのチェック 」を参照してください。 |
| ドキュメント | リターンカーソル を構成します。 |
| integer | 各バッチに含める不整合結果の最大数。 |
出力
checkMetadataConsistency
コマンドは、シャーディングメタデータで見つかった不整合ごとに、ドキュメントを含むカーソルを返します。詳細については、「 不整合のタイプ 」を参照してください。
返されるドキュメントには、次のフィールドが含まれます。
フィールド | タイプ | 説明 |
---|---|---|
| ドキュメント | 不整合チェックの結果を持つカーソル。 |
| integer | カーソル ID を示す 64 ビット整数。 次の不整合のバッチを取得するには、 カーソルが |
| string | データベースとコレクションで不整合がチェックされました。 |
| 配列 | メタデータ整合性チェックの結果。 |
| ブール値 | コマンドが成功したかどうかを示します。 |
動作
バッチ結果
checkMetadataConsistency
コマンドは 個の結果をバッチで返します。 バッチサイズをカスタマイズするには、 batchSize
オプションを使用します。
var cur = db.runCommand( { checkMetadataConsistency: 1, cursor: { batchSize: 10 } } )
cursor.id
フィールドが 0 より大きい場合は、 getMore
コマンドで を使用して、次の結果のバッチを取得できます。
Check Indexes
checkMetadataConsistency
コマンドは、デフォルトではインデックスをチェックしません。 メタデータの整合性とインデックスを確認するには、 checkIndexes
オプションを使用します。
db.runCommand( { checkMetadataConsistency: 1, checkIndexes: true } )
例
runCommand()
を使用してcheckMetadataConsistency
コマンドを実行します。
db.runCommand( { checkMetadataConsistency: 1 } )
出力例:
{ cursor: { id: Long("0"), ns: "test.$cmd.aggregate", firstBatch: [ { type: "MisplacedCollection", description: "Unsharded collection found on shard different from database primary shard", details: { namespace: "test.authors", shard: "shard02", localUUID: new UUID("1ad56770-61e2-48e9-83c6-8ecefe73cfc4") } } ], }, ok: 1 }