定義
rs.remove(hostname)hostnameパラメーターで記述されたノードを現在のレプリカセットから削除します。この関数は、shell を一時的に切断し、レプリカセットがどのノードをプライマリにするかを再ネゴシエートするときに再接続を強制します。その結果、このコマンドが成功しても、shell はエラーを表示します。rs.remove()メソッドには次のパラメーターがあります。Parameterタイプ説明hostnamestring
レプリカセット内のシステムのホスト名
注意
rs.remove()操作を実行中前に、削除するレプリカセットメンバーをシャットダウンすることをお勧めします。
互換性
このメソッドは、次の環境でホストされている配置で使用できます。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
動作
グローバル書込み保証 (write concern)
ノードを削除すると、レプリカセット内の投票ノードの数が変わり、暗黙のデフォルトの書込み保証 (write concern)が変更される可能性があります。
暗黙的なデフォルトの書込み保証 (write concern) ) を変更する 構成 でレプリカセットを再構成する前に、グローバルでデフォルトの書込み保証(書込み保証 (write concern)) を明示的に設定する必要があります。グローバルのデフォルトの書込み保証 (write concern)を設定するには、setDefaultRWConcern コマンドを使用します。
削除により、過半数のノードをレプリカ構成をインストールするまで待機させる
rs.remove()replSetReconfigは、削除されたノードを省略する構成で コマンドを実行します。メソッドは、投票権のあるレプリカセットノードの過半数が新しいレプリカ構成をインストールするまで待機してから、成功を返します。投票ノードとは、 がmembers[n].votes 1であるレプリカセットのノード(アービタを含む)です。レプリカセットメンバーが新しい構成をインストールする方法については、「 再構成により、過半数のメンバーがレプリカ構成をインストールするまで待機する 」を参照してください。
rs.remove()は maxTimeMS 制限を受け入れません。投票権を持つノードの過半数が新しい構成をインストールしない場合、操作は無期限に待機します。
削除されたノードへの接続
デフォルトでは、レプリカセット ノードは 5 分間待機してから、除外されたノードへの接続を削除します。シャーディングされたレプリカセットでは、ShardingTaskExecutorPoolHostTimeoutMS サーバー パラメーターを使用してこのタイムアウトを変更できます。
レプリカセットから削除されたノードへのすべての送信接続をすぐに削除するには、レプリカセット上の残りの各ノードでdropConnections管理コマンドを実行します。
db.adminCommand( { "dropConnections" : 1, "hostAndPort" : [ "<hostname>:<port>" ] } )
<hostname> を削除されたノードのホスト名に置き換え、 <port> を mongod がリスニングしていたポートに置き換えます。