定義
checkMetadataConsistencyクラスター、データベース、またはコレクションのシャーディングメタデータの整合性に関して一連のチェックを実行します。 コマンドは、不整合の結果のすべてまたはバッチするが見つかったカーソルを返します。
Tip
In
mongosh, this command can also be run through thedb.checkMetadataConsistency(),db.collection.checkMetadataConsistency(), orsh.checkMetadataConsistency()helper methods.Helper methods are convenient for
mongoshusers, but they may not return the same level of information as database commands. In cases where the convenience is not needed or the additional return fields are required, use the database command.アップグレードやダウングレードなどの主要なメンテナンス操作の後にこのコマンドを実行し、カタログの状態を確認します。
デフォルトでは、 コマンドはシャード間での整合性についてインデックスをチェックしません。 インデックスを確認するには、
checkIndexesオプションを設定します。バージョン7.0の新機能。
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
- MongoDB Atlas はクラウドでの MongoDB 配置のための完全管理サービスです
注意
このコマンドは、すべての MongoDB Atlas クラスターでサポートされています。すべてのコマンドに対する Atlas のサポートについては、「サポートされていないコマンド」を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
注意
checkMetadataConsistency コマンドは、mongos に接続している場合にのみ実行できます。 mongod はこのコマンドをサポートしていません。
構文
クラスター全体でシャーディング メタデータの不整合を確認するには、
adminデータベースから コマンドを実行します。db.adminCommand( { checkMetadataConsistency: 1 } ) データベースでシャーディング メタデータの不整合を確認するには、 データベース コンテキスト から コマンドを実行します。
use cars db.runCommand( { checkMetadataConsistency: 1 } ) シャーディングメタデータの不整合があるコレクションを確認するには、コレクション名を指定して コマンドを実行します。
use library db.runCommand( { checkMetadataConsistency: "authors", } )
コマンドフィールド
フィールド | タイプ | 説明 |
|---|---|---|
| 整数または文字列 | チェックするコレクションを指定します。
|
| ブール値 | コマンドがシャーディング メタデータのインデックスもチェックするかどうかを設定します。 For more information, see Check Indexes. |
| ドキュメント | リターンカーソル を構成します。 |
| integer | 各バッチに含める不整合結果の最大数。 |
| 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 }