AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Docs Menu

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 のバージョン

注意

checkMetadataConsistency コマンドは、mongos に接続している場合にのみ実行できます。 mongod はこのコマンドをサポートしていません。

  • クラスター全体でシャーディング メタデータの不整合を確認するには、 adminデータベースから コマンドを実行します。

    db.adminCommand( {
    checkMetadataConsistency: 1
    } )
  • データベースでシャーディング メタデータの不整合を確認するには、 データベース コンテキスト から コマンドを実行します。

    use cars
    db.runCommand( {
    checkMetadataConsistency: 1
    } )
  • シャーディングメタデータの不整合があるコレクションを確認するには、コレクション名を指定して コマンドを実行します。

    use library
    db.runCommand( {
    checkMetadataConsistency: "authors",
    } )
フィールド
タイプ
説明

checkMetadataConsistency

整数または文字列

チェックするコレクションを指定します。

1
データベース内のすべてのコレクションでメタデータの不整合をチェックするよう、 コマンドを設定します。 adminデータベースで実行すると、すべてのデータベース内のすべてのコレクションがチェックされます。
"<collection>"
メタデータの不整合をチェックするようにコレクションを設定します。

checkIndexes

ブール値

コマンドがシャーディング メタデータのインデックスもチェックするかどうかを設定します。

詳細については、「インデックスのチェック 」を参照してください。

cursor

ドキュメント

リターンカーソル を構成します。

cursor.batchSize

integer

各バッチに含める不整合結果の最大数。

dbMetadataLockMaxTimeMS

integer

任意。コマンドがデータベースロックを取得するまで待機できる最大時間(ミリ秒)。

このフィールドはmaxTimeMSでも使用することもできます。例、dbMetadataLockMaxTimeMS を 500 に設定し、maxTimeMS を 5000 に設定すると、操作はデータベースロックを取得するために 500 ミリ秒待機し、操作全体の合計 5000 ミリ秒を待機します。終了します。

performStrictChunkChecksIfBelowThreshold

integer

バージョン9.0の新機能。

任意。コマンドがコレクションのシャードのチャンクメタデータを十分に比較することを決定する、チャンク数のしきい値。

  • シャードがコレクションのために所有するチャンクがこのしきい値より少ない場合、コマンドは完全な比較を実行します。コマンドは、 コンフィギュレーションサーバー、シャード、および インメモリ チャンク マップ全体ですべてのチャンクのメタデータをチェックします。

  • シャードのチャンク数がしきい値を満たすか超える場合、コマンドは代わりに合計チャンク数と最高のチャンク バージョンのみを比較します。

デフォルト値は1152921504606846975 (260 -1 )チャンクであり、デフォルトでは 、 コマンドは常に完全な比較による厳密なチェックを実行します。

詳細については、「 チャンク チェックのしきい値 」を参照してください。

checkMetadataConsistency コマンドは、シャーディングメタデータで見つかった不整合ごとに、ドキュメントを含むカーソルを返します。詳細については、「 不整合のタイプ 」を参照してください。

返されるドキュメントには、次のフィールドが含まれます。

フィールド
タイプ
説明

cursor

ドキュメント

不整合チェックの結果を持つカーソル。

cursor.id

integer

カーソル ID を示す 64 ビット整数。 次の不整合のバッチを取得するには、 getMoreコマンドでcursor.id値を使用します。

カーソルが0の ID を返す場合、これ以上の情報のバッチがないことを示します。

cursor.ns

string

データベースとコレクションで不整合がチェックされました。

cursor.firstBatch

配列

メタデータ整合性チェックの結果。

ok

ブール値

コマンドが成功したかどうかを示します。

checkMetadataConsistencyコマンドは 個の結果をバッチで返します。 バッチサイズをカスタマイズするには、 batchSizeオプションを使用します。

var cur = db.runCommand( {
checkMetadataConsistency: 1,
cursor: {
batchSize: 10
}
} )

cursor.idフィールドが 0 より大きい場合は、 getMoreコマンドで を使用して、次の結果のバッチを取得できます。

checkMetadataConsistencyコマンドは、デフォルトではインデックスをチェックしません。 メタデータの整合性とインデックスを確認するには、 checkIndexesオプションを使用します。

db.runCommand( {
checkMetadataConsistency: 1,
checkIndexes: true
} )

デフォルトでは 、checkMetadataConsistency コマンドは、コンフィギュレーションサーバー、シャード、およびメモリ内チャンク マップ全体ですべてのチャンクのメタデータを完全に比較します。多数のチャンクを所有するシャードでは、この比較により、 コマンドがメタデータロックを保持する期間が増加する可能性があります。チャンクの数が多いと、 コマンドがコンフィギュレーションサーバーから読み込むデータの量も増加する可能性もあります。

この影響を軽減するには、performStrictChunkChecksIfBelowThreshold を チャンク数に設定します。チェックされたコレクションのシャードのチャンク数がこのしきい値より小さい場合、コマンドは完全なチャンク比較を実行します。カウントがしきい値を満たすか超えると、コマンドは代わりに合計チャンク数と最高のチャンク バージョンのみを比較します。

db.runCommand( {
checkMetadataConsistency: 1,
performStrictChunkChecksIfBelowThreshold: 10000
} )

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
}