Docs Menu
Docs Home
/
MongoDBマニュアル
/ / /

自己管理型レプリカセットの名前変更

項目一覧

  • 前提条件
  • 手順

レプリカセットの名前を変更するには、レプリカセットのすべてのノードをシャットダウンしてから、各ノードの localデータベースを新しいレプリカセット名で構成する必要があります。

この手順では、ダウンタイムが必要です。

  • レプリカセットがシャーディングされていないことを確認します。 名前変更手順は、シャーディングされていないレプリカセットのみ。

  • レプリカセットの名前を変更する前に、MongoDB 配置の完全なバックアップを実行してください。

  • 認証が有効になっている場合は、各ノードのlocalデータベース内のsystem.replsetコレクションに対してfindinsert 、およびremove特権があることを確認します。

    Tip

    showPrivileges フィールドと showBuiltinRoles フィールドの両方を true に設定して rolesInfo コマンドを発行すると、ロールの権限を表示できます。

1

レプリカセットの停止 」の手順に従って、レプリカセット メンバーがシャットダウンされていることを確認します。

警告

この手順では、すべてのレプリカ ノードをシャットダウンする必要があるため、ダウンタイムが必要になります。

2

レプリカセットの各ノードに対して次の手順を実行します。

  1. --replSetオプションを使用せずに、別のポートでレプリカセット メンバーを起動します。

  2. レプリカセット名を更新します。

    • 構成ファイルを使用する場合は、 replication.replSetNameを新しい名前に設定します。

    • mongodオプションとともに スタートアップ--replSet コマンドを使用する場合は、ステップ f で使用する新しいレプリカセット名を書き留めておきます。

  3. レプリカセット メンバーに接続します。

  4. 次のコマンドを使用して、ローカルデータベース内のレプリカセット名を更新します。

    /* 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})
  5. レプリカセット メンバーをシャットダウンします。

    注意

    Ops Manager

    MongoDB Ops Managerを使用している場合は、レプリカセット メンバーをシャットダウンする前に、 MongoDB Ops Managerによるレプリカセットの管理を停止する必要があります。 この手順の詳細については、「 Ops Management からのプロセスの削除」を参照してください。

  6. レプリカセット メンバーを元のポートで起動します。

    • 構成ファイルを使用する場合は、 replication.replSetNameが新しいレプリカセット名に設定されていることを確認します。

    • オプションとともにmongod スタートアップ--replSet コマンドを使用する場合は、レプリカセットの新しい名前を--replSet オプションに渡します。

戻る

同期ターゲットの設定

項目一覧