sh.addShardToZone()
定義
sh.addShardToZone(shard, zone)
シャードをゾーンに関連付けます。 MongoDB はこのシャードを指定されたゾーンに関連付けます。 ゾーンによってカバーされる チャンク は、そのゾーンに関連付けられているシャードに割り当てられます。
重要
mongosh メソッド
このページでは、
mongosh
メソッドについて説明します。ただし、データベースコマンドや Node.js などの言語固有のドライバーのドキュメントには該当しません。データベースコマンドについては、
addShardToZone
コマンドを参照してください。MongoDB API ドライバーについては、各言語の MongoDB ドライバー ドキュメントを参照してください。
このメソッドには次のパラメーターがあります。
Parameterタイプ説明stringstringsh.addShardToZone()
インスタンスに接続されている場合にのみmongos
を発行します。
互換性
このメソッドは、次の環境でホストされている配置で使用できます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
重要
このコマンドはサーバーレスインスタンスではサポートされていません。 詳細については、「サポートされていないコマンド 」を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
動作
ゾーンを複数のシャードに関連付けることができ、シャードは複数のゾーンに関連付けらることができます。
シャーディングされたクラスター内のゾーンの詳細については、ゾーンのマニュアル ページを参照してください。
Ranges
MongoDB は、関連付けられているシャードキー値が少なくとも 1 つの範囲ではないゾーンを実質的に無視します。
シャードキー値の範囲をゾーンに関連付けるには、 sh.updateZoneKeyRange()
メソッドを使用します。
updateZoneKeyRange
データベースコマンドとそのヘルパーsh.updateZoneKeyRange()
およびsh.addTagRange()
は、シャーディングされていないコレクションまたは存在しないコレクションで実行できます。
Tip
空のコレクションまたは存在しないコレクションをシャーディングする前にゾーンとゾーン範囲を定義することで、シャード コレクション操作は定義されたゾーン範囲のチャンクと、シャードキー値の全範囲をカバーする追加のチャンクを作成し、初期化を実行しますゾーン範囲に基づく チャンク分散 。 このように初期チャンクを作成して分散することで、ゾーン シャーディングの設定を迅速に行うことができます。 初期分散後、バランサーは今後のチャンク分散を管理します。
例については、「 空または存在しないコレクションのゾーンとゾーン範囲の事前定義」を参照してください。
セキュリティ
アクセス制御を強制するシャーディングされたクラスターの場合は、次のいずれかの特権を持つユーザーとして認証する必要があります。
データベース内の
update
shards
コレクションにある { または、あるいは、config
enableSharding
クラスター リソースの
clusterAdmin
またはclusterManager
の組み込みロールには、 sh.addShardToZone()
を発行するための適切な権限があります。 詳細については、ロールベースのアクセス制御 のマニュアル ページを参照してください。
例
次の例では、 NYC
、 LAX
、 NRT
の 3 つのゾーンを追加し、それぞれを シャード に関連付けます。
sh.addShardToZone("shard0000", "JFK") sh.addShardToZone("shard0001", "LAX") sh.addShardToZone("shard0002", "NRT")
シャードは複数のゾーンに関連付けることができます。 次の例えでは、 LGA
をshard0000
に関連付けます。
sh.addShardToZone("shard0000", "LGA")
shard0000
は、 LGA
ゾーンとJFK
ゾーンの両方に関連付けられています。 MongoDB はバランスの取れたクラスター内で、いずれのゾーンでカバーされる読み取りと書込みをshard0000
にルーティングします。