定義
addShardシャーディングされたクラスターに シャード レプリカセット を追加します。
Tip
In
mongosh, this command can also be run through thesh.addShard()helper method.Helper methods are convenient for
mongoshusers, but they may not return the same level of information as database commands. In cases where the convenience is not needed or the additional return fields are required, use the database command.
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
注意
このコマンドはMongoDB Atlasではサポートされていません。Atlas クラスターからシャードを追加または削除するには、「Atlasシャードクラスタの変更」を参照してください。
構文
このコマンドの構文は、次のとおりです。
db.adminCommand( { addShard: "<replica_set>/<hostname><:port>", name: "<shard_name>" } )
コマンドフィールド
注意
バージョン6.2 以降、 MongoDB はmaxSize コマンドからaddShard フィールドを削除します。以下はその結果です。
このコマンドには次のフィールドが含まれています。
フィールド | タイプ | 説明 | |
|---|---|---|---|
| string | シャードのレプリカセットの少なくとも 1 つのノードのレプリカセット名、ホスト名、ポート。 追加のレプリカセット ノードのホスト名は、カンマで区切る必要があります。 例: | |
| string | 任意。 シャードの名前。 これが指定されていない場合、MongoDB は自動的に一意の名前を付与します。 |
The addShard command stores shard configuration information in the config database. Always run addShard when using the admin database.
Considerations
ストレージ
シャーディングされたクラスターに追加するシャードは空である必要があります。
バランシング
シャーディングされたクラスターにシャードを追加すると、既存のすべてのシャーディングされたコレクションのクラスターのシャード間のチャンクのバランスに影響します。 バランサーはチャンクの移行を開始し、クラスターがバランスをとります。 詳細については、「バランサーの内部」を参照してください。
非表示メンバー
重要
You cannot include a hidden member in the seed list provided to addShard.
DDL 操作
クラスターが DDL操作( reshardCollectionなどのコレクションを変更する操作)を実行しているときにシャードを追加する場合、 addShardは同時 DDL操作が完了した後にのみ実行されます。
必要なアクセス権
addShard コマンドを実行するには、クラスターリソースに対して addShard アクション が必要です。clusterAdmin または clusterManager の組み込みロールには、addShardアクションが含まれており、addShard コマンドを実行する特権が付与されます。
例
次のコマンドは、レプリカセットをシャードとして追加します。
use admin db.runCommand( { addShard: "repl0/mongodb3.example.net:27327"} )
警告
コンフィギュレーションサーバーもlocalhostで実行されていない限り、ホスト名にlocalhostを使用しないでください。