Docs Menu

addShard

addShard

のシャーディングされたクラスターにシャード レプリカセットを追加します。

Tip

mongoshでは、このコマンドはsh.addShard()ヘルパー メソッドを通じて実行することもできます。

ヘルパー メソッドはmongoshユーザーには便利ですが、データベースコマンドと同じレベルの情報は返されない可能性があります。 便宜上必要ない場合、または追加の戻りフィールドが必要な場合は、 データベースコマンドを使用します。

このコマンドは、次の環境でホストされている配置で使用できます。

  • MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン

  • MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン

注意

このコマンドはMongoDB Atlasではサポートされていません。 Atlas クラスターからシャードを追加または削除するには、「 Atlasシャードクラスタの変更 」を参照してください。

このコマンドの構文は、次のとおりです。

db.adminCommand(
{
addShard: "<replica_set>/<hostname><:port>",
maxSize: <size>,
name: "<shard_name>"
}
)

このコマンドには次のフィールドが含まれています。

フィールド
タイプ
説明

addShard

string

シャードのレプリカセットの少なくとも 1 つのノードのレプリカセット名、ホスト名、ポート。 追加のレプリカセット ノードのホスト名は、カンマで区切る必要があります。 例:

<replica_set>/<hostname><:port>,<hostname><:port>, ...

maxSize

integer

任意。 シャード の最大サイズ(メガバイト単位)。 maxSize0に設定すると、MongoDB はシャードのサイズを制限しません。

name

string

任意。 シャードの名前。 これが指定されていない場合、MongoDB は自動的に一意の名前を付与します。

addShardコマンドは、 構成データベースにシャード構成情報を保存します。 adminデータベースを使用する場合は、常にaddShardを実行してください。

異なるディスク容量のマシンがある場合、または一部のシャードのデータ量を制限する場合は、 maxSizeを指定します。 maxSizeの制約により、シャードで totalSizeの実行から返されたlistDatabases maxSizeが の値を超える場合に、 バランサー はチャンクをシャードに移行できなくなります。

シャーディングされたクラスターに追加するシャードは空である必要があります。

シャーディングされたクラスターにシャードを追加すると、既存のすべてのシャーディングされたコレクションのクラスターのシャード間のチャンクのバランスに影響します。 バランサーはチャンクの移行を開始し、クラスターがバランスをとります。 詳細については、「バランサーの内部」を参照してください。

チャンクの移行はディスク容量に影響を与える可能性があり、ソースシャードは移行されたドキュメントをデフォルトで自動的にアーカイブします。 詳細については、 moveChunkディレクトリを参照してください。

重要

に提供されるシードリストにaddShard 非表示メンバー を含めることはできません。

addShardコマンドを実行するには、クラスターリソースに対してaddShard アクションが必要です。 または の組み込みロールには、clusterAdmin clusterManagerアクションが含まれており、addShard addShardコマンドを実行する特権が付与されます。

次のコマンドは、レプリカセットをシャードとして追加します。

use admin
db.runCommand( { addShard: "repl0/mongodb3.example.net:27327"} )

警告

コンフィギュレーションサーバーもlocalhostで実行されていない限り、ホスト名にlocalhostを使用しないでください。