定義
バージョン8.0の新機能。
MongoDB 8.0以降では、次のことが可能です。
通常のシャーディングされたクラスターのメタデータデータ に加えて、アプリケーションデータを保存するように コンフィギュレーションコンフィギュレーションサーバーを構成します。 アプリケーションデータを保存するコンフィギュレーションサーバーは、コンフィギュレーションシャードと呼ばれます。
コンフィギュレーコンフィギュレーションサーバーの間で変換しコンフィギュレーションサーバー。
クラスターにはコンフィギュレーションサーバーが必要ですが、専用のコンフィギュレーションサーバーでなく、 コンフィギュレーションシャード にすることもできます。 コンフィギュレーションシャードを使用すると、必要なノードの数が減り、配置が簡素化されます。
アプリケーションに可用性と回復力の要件がある場合は、専用のコンフィギュレーションサーバーの配置を検討してください。 専用のコンフィギュレーションサーバーは、重要なクラスター操作に対して分離、専用リソース、一貫したパフォーマンスを提供します。
transitionToDedicatedConfigServer
コマンドは、コンフィギュレーションシャードを専用のコンフィギュレーションコンフィギュレーションサーバーとして実行するように構成します。 コマンドを使用すると、バランサーは優先的にチャンクをコンフィギュレーションシャードからクラスター内の他のシャードに移動するようにします。
transitionToDedicatedConfigServer
を実行する前に、 mongos
に接続し、管理データベースを使用します。
シャーディングされたシャーディングされたクラスターでは、 featureCompatibilityVersionを少なくとも8.0
に設定する必要があります。
構文
コマンド構文:
db.adminCommand( { transitionToDedicatedConfigServer: 1 } )
動作
transitionToDedicatedConfigServer
コマンドは、removeShard
がデータを移動するのと同じ方法で、コンフィギュレーションシャードから他のシャードにアプリケーションデータを移動します。バランサーは、シャーディングされたコレクションデータをクラスター内の他の適格なシャードに移動します。シャーディングされていないコレクションデータとデータベースは、クラスター内の選択したシャードに移動する必要があります。構成シャードを削除する手順については、 「シャードクラスタからシャードを削除する」を参照してください。
内部的には、 transitionToDedicatedConfigServer
はremoveShard
コマンドを実行します。 transitionToDedicatedConfigServer
はremoveShard
と同じ応答を返します。 データ移動に成功した後のレスポンスにはstate: "completed"
が含まれます。 完全な応答の詳細と例については、「 deleteShard の例」を参照してください。 transitionToDedicatedConfigServer
を実行中する前にremoveShard
のドキュメントを確認して、デプロイにどのように影響するかを理解してください。
transitionToDedicatedConfigServer
を 2 回実行し、シャード データが現在他のシャードに移動している場合、 transitionToDedicatedConfigServer
の 2 回目の実行によってデータ移動の現在のステータスが返されます。 transitionToDedicatedConfigServer
はremoveShard
と同じ応答を返します。
transitionToDedicatedConfigServer
によるデータの移動が完了すると、コンフィギュレーションサーバーは専用のコンフィギュレーションサーバーになり、コンフィギュレーションシャードではなくなります。
アクセス制御
アクセス制御が有効になっている場合、transitionToDedicatedConfigServer
コマンドには クラスターtransitionToDedicatedConfigServer
の 認可アクションが必要です。
{ resource: { cluster : true }, actions: [ "transitionToDedicatedConfigServer" ] }
clusterManager
ロールにはtransitionToDedicatedConfigServer
認可アクションがあり、ユーザーに割り当てることができます。
次の例ではtestUser
という名前のユーザーにclusterManager
ロールを割り当てます。
db.grantRolesToUser( "testUser", [ "clusterManager" ] )
例
次の例では、 コンフィギュレーションシャード を専用の コンフィギュレーションコンフィギュレーションサーバーとして実行するように構成します。
db.adminCommand( { transitionToDedicatedConfigServer: 1 } )
詳細については、「ダウングレード機能の互換性バージョン 」を参照してください。