Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

commitShardRemoval (データベースコマンド)

commitShardRemoval

クラスターからシャードを削除します。

このコマンドを実行するには、まずstartShardDraining コマンドでシャードをドレイニングする必要があります。このコマンドは、バランサーに対して、チャンクをシャードからクラスター内の他のシャードに移動するように指示します。また、 commitShardRemovalコマンドを実行中前に、シャードをプライマリシャードとして使用するすべてのデータベースと、シャードに保存されているシャードされていないコレクションも手動で移動する必要があります。

コマンドは、シャードが完全にドレインされていない場合、またはデータベースまたは シャーディングされていないコレクションが含まれている場合は、エラーを返します。シャードがドレインされ、すべてのデータベースとシャーディングされていないコレクションがシャードから移行された場合、コマンドは ok を返します。

シャードのドレインを開始するには、startShardDraining コマンドを参照してください。

ドレインシャードのステータスを確認するには、shardDrainingStatus コマンドを参照してください。

シャードのドレインを停止するには、stopShardDraining コマンドを参照してください。

バージョン8.3の新機能

このコマンドは、次の環境でホストされている配置で使用できます。

  • MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン

  • MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン

注意

このコマンドは MongoDB Atlasではサポートされていません。See Atlas クラスターからシャードを追加または削除するには、「Atlasシャードクラスタの変更」を参照してください。

このコマンドの構文は、次のとおりです。

db.adminCommand( {
commitShardRemoval: <shard>
} )

authorizationを有効にしている場合は、 clusterManagerロールまたはremoveShardアクションを含む任意のロールが必要です。

シャーディングされたクラスター内の各データベースにはプライマリシャードがあります。ドレインするシャードがクラスターのデータベースの 1 つのプライマリでもある場合は、シャードからすべてのデータを移行した後、データベースをプライマリシャードから新しいシャードに手動で移動する必要があります。

使用したいシャードをプライマリとして使用するデータベースがある場合、commitShardRemoval コマンドはエラーを返します。

詳細については、movePrimary コマンドと「シャードクラスタからシャードを削除する 」を参照してください。

シャーディングされていないコレクションは、個々のシャードに保存されます。これらのコレクションの 1 つが削除するシャード上にある場合は、まずそのコレクションを別のシャードに移行する必要があります。

削除対象のシャードにシャーディングされていないコレクションが保存されている場合、commitShardRemoval コマンドはエラーを返します。

シャーディングされていないコレクションを移行するには、moveCollection コマンドをご覧ください。

シャードのドレインを開始するには、db.adminCommand() メソッドを使用してstartShardDraining コマンドを実行します。

db.adminCommand( { startShardDraining: "shard04" } )

ドレイン操作のステータスを確認するには、shardDrainingStatus コマンドを使用します。

db.adminCommand( { shardDrainingStatus: "shard04" } )
{
"msg" : "draining completed successfully",
"state" : "drainingComplete",
"ok" : 1,
"$clusterTime" : {
"clusterTime" : Timestamp(1771839836, 139),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
},
"operationTime" : Timestamp(1771839836, 139)
}

出力にdbsToMove フィールド内のデータベースが表示されている場合は、movePrimary コマンドを使用してそれらを別のシャードに移動します。

出力に フィールドのシャーディングされていないコレクションが表示されている場合は、collectionsToMove moveCollectionコマンドを使用してそれらを別のシャードに移動します。

shardDrainingStatus{ state: "drainingComplete" } を表示すると、バランサーはシャードからチャンクを移動するのを完了します。シャードを削除できるようになりました。

db.adminCommand( { commitShardRemoval: "shard04" } )
{
"ok" : 1,
"$clusterTime" : {
"clusterTime" : Timestamp(1771840037, 12),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
},
"operationTime" : Timestamp(1771840037, 12)
}

戻る

commitReshardCollection

項目一覧