クラスターにシャードを追加する
クラスターを作成した後、またはクラスターに容量を追加する必要があるときに、 のシャーディングされたクラスターにシャードを追加します。 シャーディングされたクラスターを作成していない場合は、「自己管理型のシャーディングされたクラスターの配置 」を参照してください。
すべてのシャードはレプリカセットである必要があります。
Considerations
バランシング
シャーディングされたクラスターにシャードを追加すると、既存のすべてのシャーディングされたコレクションのクラスターのシャード間のチャンクのバランスに影響します。 バランサーはチャンクの移行を開始し、クラスターがバランスをとります。 詳細については、「バランサーの内部」を参照してください。
チャンクの移行はディスク容量に影響を与える可能性があり、ソースシャードは移行されたドキュメントをデフォルトで自動的にアーカイブします。 詳細については、 moveChunk
ディレクトリを参照してください。
キャパシティー プランニング
クラスターにシャードを追加する場合は、正規表現のトラフィックに影響を与えずに、クラスターのバランスを取るために必要な移行をサポートするのに十分なキャパシティーがあることを常に確認してください。
クラスターにシャードを追加する
シャーディングされたクラスターを操作するには、 mongos
インスタンスに接続します。
mongosh
で、mongos
インスタンスに接続します。 たとえば、ポート27017
のmongos0.example.net
でmongos
にアクセスできる場合は、次のコマンドを発行します。mongosh --host mongos0.example.net --port 27017 以下の例に示すように、
sh.addShard()
メソッドを使用してシャード レプリカセットをクラスターに追加します。 シャードごとにsh.addShard()
を個別に発行します。 レプリカセットとレプリカセットのノードの名前を指定します。注意
任意
代わりに、シャードの名前と最大サイズを指定できる
addShard
データベースコマンドを使用できます。 これらを指定しない場合、MongoDB は名前と最大サイズを自動的に割り当てます。 データベースコマンドを使用するには、addShard
を参照してください。次の例では、
sh.addShard()
を使用してシャードを追加する方法を示しています。mongodb0.example.net
のポート27018
で実行中のノードを含む、rs1
という名前のシャード レプリカセットを追加するには、次のコマンドを実行します。sh.addShard( "rs1/mongodb0.example.net:27018" ) 注意
チャンクが新しいシャードに移行するまでに時間がかかる場合があります。