レプリカセットの名前を変更するには、レプリカセットのすべてのノードをシャットダウンしてから、各ノードの localデータベースを新しいレプリカセット名で構成する必要があります。
この手順では、ダウンタイムが必要です。
前提条件
- レプリカセットがシャーディングされていないことを確認します。 名前変更手順は、シャーディングされていないレプリカセットのみ。 
- レプリカセットの名前を変更する前に、MongoDB 配置の完全なバックアップを実行してください。 
- 認証が有効になっている場合は、各ノードの - localデータベース内の- system.replsetコレクションに対して- find、- insert、および- remove特権があることを確認します。- Tip- showPrivilegesフィールドと- showBuiltinRolesフィールドの両方を- trueに設定して- rolesInfoコマンドを発行すると、ロールの権限を表示できます。
手順
レプリカセット メンバーをシャットダウンします。
「レプリカセットの停止 」の手順に従って、レプリカセット メンバーがシャットダウンされていることを確認します。
警告
この手順では、すべてのレプリカ ノードをシャットダウンする必要があるため、ダウンタイムが必要になります。
レプリカセットの名前を変更します。
レプリカセットの各ノードに対して次の手順を実行します。
- --replSetオプションを使用せずに、別のポートでレプリカセット メンバーを起動します。
- レプリカセット名を更新します。 - 構成ファイルを使用する場合は、 - replication.replSetNameを新しい名前に設定します。
- mongodオプションとともに スタートアップ- --replSetコマンドを使用する場合は、ステップ f で使用する新しいレプリカセット名を書き留めておきます。
 
- レプリカセット メンバーに接続します。 
- 次のコマンドを使用して、ローカルデータベース内のレプリカセット名を更新します。 - /* Set `newId` to the new replica set name */ - var newId = '<new replica set name>' - var doc = db.getSiblingDB("local").system.replset.findOne() - var oldId = doc._id - doc._id = newId - db.getSiblingDB("local").system.replset.insertOne(doc) - db.getSiblingDB("local").system.replset.deleteOne({_id: oldId}) 
- レプリカセット メンバーをシャットダウンします。 - 注意- Ops Manager- MongoDB Ops Managerを使用している場合は、レプリカセット メンバーをシャットダウンする前に、 MongoDB Ops Managerによるレプリカセットの管理を停止する必要があります。 この手順の詳細については、「 Ops Management からのプロセスの削除」を参照してください。 
- レプリカセット メンバーを元のポートで起動します。 - 構成ファイルを使用する場合は、 - replication.replSetNameが新しいレプリカセット名に設定されていることを確認します。
- オプションとともに - mongodスタートアップ- --replSetコマンドを使用する場合は、レプリカセットの新しい名前を- --replSetオプションに渡します。