定義
埋め込みコンフィギュレーションサーバーから専用のコンフィギュレーションサーバーへの移行をコミットします。
このコマンドを実行するには、startTransitionToDedicatedConfigServer コマンドを使用して専用のコンフィギュレーションサーバーに移行する必要があります。このコマンドは、バランサーに対して、チャンクをシャードからクラスター内の他のシャードに移動するように指示します。 commitTransitionToDedicatedConfigServerコマンドを実行中前に、シャードをプライマリシャードとして使用するデータベースと、シャードに保存されているシャーディングされていないコレクションも手動で移動する必要があります。
コマンドは、専用コンフィギュレーションサーバーへの移行が完了しない場合、またはデータベースまたはシャーディングされていないコレクションが含まれている場合、エラーとともに ok: 0 を返します。移行が発生し、すべてのデータベースとシャーディングされていないコレクションがシャードから移行された場合、コマンドは ok: 1 を返します。
専用コンフィギュレーションサーバーへの移行を開始するには、startTransitionToDedicatedConfigServer コマンドを参照してください。
埋め込みコンフィギュレーションサーバーから専用コンフィギュレーションサーバーへの移行のステータスを表示するには、getTransitionToDedicatedConfigServerStatus コマンドを参照してください。
stopTransitionToDedicatedConfigServer埋め込みコンフィギュレーションサーバーから専用コンフィギュレーションサーバーへの進行中の移行を停止するためのコマンド。
バージョン8.3の新機能。
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
注意
このコマンドは MongoDB Atlasではサポートされていません。 「 Atlasシャードクラスタを変更して 、埋め込みコンフィギュレーションサーバーを空にする」を参照してください。
構文
このコマンドの構文は、次のとおりです。
db.adminCommand( { commitTransitionToDedicatedConfigServer: 1 } )
動作
アクセス要件
authorizationを有効にしている場合は、 clusterManagerロールまたはremoveShardアクションを含む任意のロールが必要です。
データベース移行要件
シャーディングされたクラスター内の各データベースにはプライマリシャードがあります。移行シャードがクラスターのデータベースの 1 つのプライマリでもある場合は、シャードからすべてのデータを移行した後、データベースをプライマリシャードから新しいシャードに手動で移動する必要があります。
使用したいシャードをプライマリとして使用するデータベースがある場合、commitTransitionToDedicatedConfigServer コマンドはエラーを返します。
詳細については、movePrimary コマンドと「シャードクラスタからシャードを削除する 」を参照してください。
コレクション移行要件
シャーディングされていないコレクションは、個々のシャードに保存されます。これらのコレクションの 1 つが 埋め込みから専用のコンフィギュレーションサーバーに移行するシャード にある場合は、まずそのコレクションを別のシャードに移行する必要があります。
埋め込みから専用のコンフィギュレーションサーバーに移行するシャードに保存されていないコレクションがある場合、commitTransitionToDedicatedConfigServer コマンドはエラーを返します。
シャーディングされていないコレクションを移行するには、moveCollection コマンドをご覧ください。
例
シャードのドレインを開始するには、db.adminCommand() メソッドを使用してstartTransitionToDedicatedConfigServer コマンドを実行します。
db.adminCommand( { startTransitionToDedicatedConfigServer: "1" } )
ドレイン操作のステータスを確認するには、getTransitionToDedicatedConfigServerStatus コマンドを使用します。
db.adminCommand( { getTransitionToDedicatedConfigServerStatus: "1" } )
{ "state" : "drainingComplete", "msg" : "draining completed successfully", "ok" : 1, "$clusterTime" : { "clusterTime" : Timestamp(1772142838, 176), "signature" : { "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="), "keyId" : NumberLong(0) } }, "operationTime" : Timestamp(1772142838, 174) }
出力にdbsToMove フィールド内のデータベースが表示されている場合は、movePrimary コマンドを使用してそれらを別のシャードに移動します。
出力に フィールドのシャーディングされていないコレクションが表示されている場合は、collectionsToMove moveCollectionコマンドを使用してそれらを別のシャードに移動します。
getTransitionToDedicatedConfigServerStatusが{ state:
"completed" } を表示すると、バランサーはシャードからチャンクを移動するのを完了します。シャードを削除できるようになりました。
db.adminCommand( { commitTransitionToDedicatedConfigServer: "1" } )
{ "ok" : 1, "$clusterTime" : { "clusterTime" : Timestamp(1772142839, 19), "signature" : { "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="), "keyId" : NumberLong(0) } }, "operationTime" : Timestamp(1772142839, 19) }