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

6.0 レプリカセットから 5.0 へのダウングレード

項目一覧

  • ダウングレード パス
  • アクセス制御
  • 前提条件
  • ダウングレード手順

ダウングレードを試みる前に、このページの内容を理解してください。

重要

レプリカセットをアップグレードまたはダウングレードする前に、すべてのレプリカセット ノードが実行されていることを確認してください。そうしないと、すべてのノードが起動されるまでアップグレードまたはダウングレードは完了しません。

6.0 からダウングレードする必要がある場合は、5.0 の最新パッチ リリースにダウングレードします。

MongoDB は 1 つのバージョンのダウングレードのみをサポートします。現在のリリースより数バージョン前のリリースにダウングレードすることはできません。

たとえば、6.0 シリーズの配置を 5.0 シリーズにダウングレードできます。ただし、5.0 シリーズの配置から 4.4 シリーズの配置へのさらなるダウングレードはサポートされていません。

レプリカセットでアクセス制御が有効になっている場合、ダウングレード ユーザーの権限には、データベース全体のインデックスを一覧表示して管理する特権が含まれている必要があります。 rootロールを持つユーザーには必要な特権があります。

ダウングレード手順を開始する前に、次の前提条件手順を完了する必要があります。

1

任意ですが推奨します。 データベースのバックアップを作成します。

バックアップの作成方法については、「自己管理型配置のバックアップ メソッド 」を参照してください。

2

6.0 から 5.0 にダウングレードするには、5.0 と 互換性のない 6.0 の機能を削除する必要があります。 互換性のない機能のリストと削除方法については、「ダウングレードの考慮事項 」を参照してください。

3

レプリカセットの fCVをダウングレードするには:

  1. 最初の同期が進行中でないことを確認します。 最初の同期の進行中にsetFeatureCompatibilityVersionコマンドを実行すると、最初の同期がリスタートされます。

  2. レプリカセット構成newlyAddedフィールドがないノードがないことを確認します。 これを確認するには、レプリカセット内の各ノードで次のコマンドを実行します。

    use local
    db.system.replset.find( { "members.newlyAdded" : { $exists : true } } );

    newlyAddedフィールドは、最初の同期の実行中とその直後にのみ、ノードのレプリカセット構成ドキュメントにのみ表示されます。

  3. レプリカセット ノードがROLLBACKまたはRECOVERING状態になっていないことを確認します。

  4. プライマリに接続するには、 mongoshを使用します。

  5. featureCompatibilityVersion"5.0"にダウングレードします。

    db.adminCommand( { setFeatureCompatibilityVersion: "5.0" } )

    setFeatureCompatibilityVersionコマンドは内部システム コレクションへの書込みを実行し、冪等です。 コマンドが正常に完了しない場合は、プライマリでコマンドを再試行してください。

  6. レプリカセットのすべてのノードに更新されたfeatureCompatibilityVersionが適用されていることを確認するには、各レプリカセット ノードに接続し、 featureCompatibilityVersionを確認します。

    db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )

    すべてのノードは次の内容を含む結果を返す必要があります。

    "featureCompatibilityVersion" : { "version" : "5.0" }

    いずれかのノードが"6.0"featureCompatibilityVersionを返す場合は、続行する前にノードがバージョン"5.0"を返すまで待機します。

返されたfeatureCompatibilityVersion値の詳細については、 「 FeatureCompatibilityVersion の取得 」を参照してください。

警告

ダウングレード手順に入る前に、 遅延レプリカセット ノードを含むすべてのレプリカセット ノードに前提条件が変更されていることを確認してください。 そのためには、ダウングレードする前に、 featureCompatibilityVersionと を確認して、各ノードの互換性のない機能を削除します。

1

パッケージ マネージャーまたは手動ダウンロードのいずれかを使用して、5.0 シリーズの最新リリースを取得します。 パッケージ マネージャーを使用する場合は、5.0 バイナリの新しいリポジトリを追加してから、実際のダウングレード プロセスを実行します。

重要

レプリカセットをアップグレードまたはダウングレードする前に、すべてのレプリカセット ノードが実行されていることを確認してください。そうしないと、すべてのノードが起動されるまでアップグレードまたはダウングレードは完了しません。

6.0 からダウングレードする必要がある場合は、5.0 の最新パッチ リリースにダウングレードします。

2

5.0 バイナリがシステム パスにあることを確認します。 バイナリのバージョンを確認するには、次のコマンドを実行します。

mongod --version

コマンド出力に 5.0 シリーズのリリースが表示されるはずです。

3

レプリカセットの各セカンダリノードを 1 つずつダウングレードします。

  1. ノードをシャットダウンします。

    mongodプロセスをシャットダウンするには、 mongoshを使用してセカンダリに接続し、次のコマンドを実行します。

    db.adminCommand( { shutdown: 1 } )
  2. ノードを再起動します。

    mongodプロセスを開始するには、次のコマンドを実行します。

    mongod --dbpath </path-to-data-folder>

    mongodプロセスの開始の詳細については、「 mongodプロセスの開始 」を参照してください。

  3. ノードがSECONDARY状態になるまで待ちます。

    次のセカンダリをダウングレードする前に、ノードがSECONDARY状態に回復するまで待ちます。 メンバーの状態を確認するには、rs.status() mongoshで メソッドを使用します。

  4. ノードがSECONDARYステージに達したら、次のセカンダリをダウングレードします。

4

レプリカセットにアービタが含まれていない場合は、この手順をスキップします。

レプリカセットのアービタノードをダウングレードします。

  1. ノードをシャットダウンします。

    アービタをシャットダウンするには、 mongoshを使用してアービタに接続し、次のコマンドを実行します。

    db.adminCommand( { shutdown: 1 } )
  2. アービタ データ ディレクトリの内容を削除します。

    アービタmongodのデータディレクトリを見つけるには、 storage.dbPath構成設定または--dbpathコマンドライン オプションのいずれかを確認します。

    次のコマンドを実行します:

    rm -rf /path/to/mongodb/datafiles/*
  3. アービタを再起動します。

    mongodプロセスを開始するには、次のコマンドを実行します。

    mongod --dbpath </path-to-mongodb-datafiles>

    mongodプロセスの開始の詳細については、「 mongodプロセスの開始 」を参照してください。

  4. ノードがARBITER状態になるまで待ちます。

    プライマリをダウングレードする前に、ノードがARBITER状態に回復するまで待ちます。 メンバーの状態を確認するには、rs.status() mongoshで メソッドを使用します。

5
  1. プライマリを降格します。

    mongoshでは、 rs.stepDown()を使用してプライマリを降格し、通常のフェイルオーバー手順を強制します。

    rs.stepDown()
  2. プライマリが降格したことを確認します。

    次のコマンドを実行します:

    rs.status()

    プライマリが降格し、別のノードがPRIMARY状態になったことを確認します。

  3. 以前のプライマリmongodを置き換えて再起動します。

    1. ノードをシャットダウンします。

      プライマリのシャットダウンを実行するには、 mongoshを使用してプライマリに接続し、次のコマンドを実行します。

      db.adminCommand( { shutdown: 1 } )
    2. 5.0バイナリを使用してmongodを再起動します。

      mongodプロセスを開始するには、次のコマンドを実行します。

      mongod --dbpath </path-to-mongodb-datafiles>

      mongodプロセスの開始の詳細については、「 mongodプロセスの開始 」を参照してください。

戻る

スタンドアロン