Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

ダウングレード8.3 8.2へのレプリカセット

重要

MongoDB 8.3 は最新のマイナー リリースです。MongoDB 8.2 以降では、特定のユースケースに合わせてオンプレミス配置(Community と EA)でマイナー リリースを利用できます。詳細については、 MongoDB のバージョン管理 を参照してください。

オンプレミスでサポートされている最新のMongoDBバージョンをインストールするには、インストール手順を参照してください。

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

重要

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

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

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

  • メジャーでもマイナーでも、どのバージョンでも、隣接するバージョンにアップグレードまたはダウングレードできます。例、8.3 から 8.2 にダウングレードしたり、7.0 から 8.0 にアップグレードしたりできます。

  • メジャーでもマイナーでも、すべてのバージョンで、前のメジャー バージョンにダウングレードできます。例は、8.3 から 8.0 までです。

  • どのマイナー バージョンでも、すぐに次のバージョンにアップグレードできます。例は、8.2 から 8.3 までです。

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

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

1

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

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

2

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

3

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

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

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

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

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

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

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

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

    重要

    バイナリ バージョンをダウングレードする前に、下位互換性のない機能をすべて削除していることを確認してください。続行する前に、必ずアップグレード パスを評価してください。

    db.adminCommand( { setFeatureCompatibilityVersion: "8.2", confirm: true } )

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

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

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

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

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

警告

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

1

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

重要

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

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

2

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

mongod --version

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

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. 8.2バイナリを使用してmongodを再起動します。

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

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

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

戻る

スタンドアロン

項目一覧