クラスターにシャードを追加する
クラスターを作成した後、またはクラスターに容量を追加する必要があるときに、 のシャーディングされたクラスターにシャードを追加します。 シャーディングされたクラスターを作成していない場合は、「自己管理型のシャーディングされたクラスターの配置 」を参照してください。
すべてのシャードはレプリカセットである必要があります。
Considerations
バランシング
シャーディングされたクラスターにシャードを追加すると、既存のすべてのシャーディングされたコレクションのクラスターのシャード間のチャンクのバランスに影響します。 バランサーはチャンクの移行を開始し、クラスターがバランスをとります。 詳細については、「バランサーの内部」を参照してください。
キャパシティー プランニング
クラスターにシャードを追加する場合は、正規表現のトラフィックに影響を与えずに、クラスターのバランスを取るために必要な移行をサポートするのに十分なキャパシティーがあることを常に確認してください。
DDL 操作
クラスターが DDL 操作( reshardCollection
などのコレクションを変更する操作)を実行しているときにシャードを追加した場合、シャードを追加する操作は、同時 DDL 操作が終了した後にのみ実行されます。
クラスターにシャードを追加する
シャーディングされたクラスターを操作するには、 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" ) 注意
チャンクが新しいシャードに移行するまでに時間がかかる場合があります。