AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

アップグレード 8.2クラスターから 8.3

重要

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

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

このドキュメントの内容をよく読み、前提条件を十分に確認してから、 MongoDB 8.3にアップグレードしてください。

次の手順では、シャード メンバーであるmongodをバージョン8.2から8.3にアップグレードする手順について説明します。

8.3 へのアップグレードに関するガイダンスが必要な場合は、 MongoDBプロフェッショナル サービスがアップグレード サポートを提供して、 MongoDBアプリケーションを中断することなくスムーズに移行できるようにします。

アップグレードの際には、次の点を考慮してください。

既存の MongoDB デプロイを8.3にアップグレードするには、 8.0シリーズのリリースを実行している必要があります。

マイナー バージョンからアップグレードする場合、最終的に 8.3 にアップグレードされるまで、マイナー リリースを順次アップグレードする必要があります。

MongoDB をアップグレードする前に、MongoDB 8.3の互換性があるドライバーを使用していることを確認してください。 MongoDB 8.3との互換性を確認するには、特定のドライバーのドライバー のドキュメントを参照してください。

互換性のないドライバーでアップグレードを実行した場合、予期しないまたは未定義の動作が発生する可能性があります。

アップグレードを開始する前に、ドキュメント「 MongoDB 8.3での互換性の変更 」で、ご利用のアプリケーションとデプロイが MongoDB 8.3と互換性があることを確認してください。 アップグレードを開始する前に、お使いの環境の互換性の問題を解決してください。

MongoDB をアップグレードする際は、アップグレードを本番環境にデプロイする前に、必ずアプリケーションをステージング環境でテストします。

MongoDB 8.3 以降では、 MongoDBのバージョンをその前のマイナーまたはメジャー バージョンにダウングレードできます。

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

例、8.0 の配置を 7.0 にダウングレードできます。ただし、7.0 配置から 6.0 配置へのさらなるダウングレードはサポートされていません。

詳しくは、「 8.3から8.2へのダウングレード 」を参照してください。

シャーディングされたクラスターを8.3 にアップグレードするには、クラスターのすべてのノードが少なくともバージョン 8.2 である必要があります。アップグレード プロセスでは、クラスターのすべてのコンポーネントがチェックされ、いずれかのコンポーネントが 8.2 より前のバージョンを実行中いる場合は警告が発せられます。

8.2のシャーディングされたクラスターでは、 featureCompatibilityVersion"8.2"に設定する必要があります。

シャーディングされたクラスターのすべてのノードで、featureCompatibilityVersion"8.2" に設定されていることを確認するには、各シャードレプリカセットノードと各コンフィギュレーションサーバーレプリカセットノードに接続します。次に、featureCompatibilityVersion を確認します。

Tip

アクセス制御が有効になっているシャーディングされたクラスターの場合、シャード レプリカセット ノードに対して次のコマンドを実行するには、シャード ローカル ユーザー としてノードに接続する必要があります。

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

featureCompatibilityVersionを設定または更新するには、 mongosで次のコマンドを実行します。

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

詳細については、setFeatureCompatibilityVersion を参照してください。

シャードとコンフィギュレーションサーバーでは、レプリカセット ノードがROLLBACKまたはRECOVERING状態になっていないことを確認します。

db.adminCommand( { replSetGetStatus: 1 } )

任意ですが推奨します。注意事項として、シャーディングされたクラスターをアップグレードする前にconfigデータベースのバックアップを作成してください。

MongoDB を MongoDB aptyumdnf 、またはzypperリポジトリからインストールした場合、パッケージ マネージャーを使用して8.3にアップグレードする必要があります。

Linuxシステムの場合は、8.3 のインストール手順を参照してください。新しいリリース用にリポジトリを追加して、実際にアップグレードする必要があります。

パッケージ マネージャーを使用して MongoDB をインストールしていない場合は、 MongoDB ダウンロード センターから MongoDB バイナリを手動でダウンロードできます。

詳しくは、 8.3インストール手順を参照してください。

1

mongoshmongosシャーディングされたクラスター内のsh.stopBalancer() インスタンスに接続し、 を実行してバランサーを無効にします。

sh.stopBalancer()

注意

移行が進行中の場合、システムは進行中の移行を完了してから、バランサー を停止します。sh.isBalancerRunning() を実行して、バランサーの現在の状態を確認できます。

バランサーが無効になっていることを確認するには、sh.getBalancerState() を実行します。バランサーが無効になっている場合は false が返されます。

sh.getBalancerState()

バランサーを無効にする方法の詳細については、「 バランサーを無効にする 」を参照してください。

2
  1. レプリカセットのセカンダリノードを一度に 1 つずつアップグレードします。

    1. セカンダリ インスタンスをシャットダウンします。

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

      db.adminCommand( { shutdown: 1 } )
    2. 8.2バイナリを8.3バイナリに置き換えます。

    3. 8.3バイナリを起動します。

      --configsvr--replSet--portを使用して8.3バイナリを起動します。 配置で使用されるその他のオプションを含めます。

      mongod --configsvr --replSet <replSetName> --port <port> --dbpath <path> --bind_ip localhost,<ip address>

      構成ファイルを使用している場合は、ファイルを更新してsharding.clusterRole: configsvrreplication.replSetNamenet.portnet.bindIpを指定し、8 を起動します。3binary:

      sharding:
      clusterRole: configsvr
      replication:
      replSetName: <string>
      net:
      port: <port>
      bindIp: localhost,<ip address>
      storage:
      dbpath: <path>

      配置に適したその他の設定を含めます。

    4. 次のセカンダリ ノードをアップグレードする前に、ノードがSECONDARY状態に回復するまで待機します。

      メンバーの状態を確認するには、rs.status()mongosh を発行します。

  2. レプリカセットのプライマリを降格します。

    1. mongoshをプライマリに接続し、 rs.stepDown()を使用してプライマリを降格し、新しいプライマリの選出を強制します。

      rs.stepDown()
    2. 降格したプライマリをシャットダウンします。

      rs.status()でプライマリが降格し、別のノードがPRIMARY状態になったことが示されたら、降格したプライマリをシャットダウンします。

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

      db.adminCommand( { shutdown: 1 } )
    3. mongodバイナリを8.3バイナリに置き換えます。

    4. 8.3バイナリを起動します。

      --configsvr--replSet--port--bind_ipオプションを使用して8.3を起動します。 以前の配置で使用された任意の コマンドライン オプションを含めます。

      mongod --configsvr --replSet <replSetName> --port <port> --dbpath <path> --bind_ip localhost,<ip address>

      構成ファイルを使用している場合は、ファイルを更新してsharding.clusterRole: configsvrreplication.replSetNamenet.portnet.bindIpを指定してから、 8を起動します。 3 バイナリ:

      sharding:
      clusterRole: configsvr
      replication:
      replSetName: <string>
      net:
      port: <port>
      bindIp: localhost,<ip address>
      storage:
      dbpath: <path>

      配置に適したその他の構成を含めます。

3

シャードを一度に 1 つずつアップグレードします。

各シャード レプリカセット:

  1. レプリカセットのセカンダリノードを一度に 1 つずつアップグレードします。

    1. セカンダリ インスタンスをシャットダウンします。

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

      db.adminCommand( { shutdown: 1 } )
    2. 8.2バイナリを8.3バイナリに置き換えます。

      --shardsvr--replSet--port--bind_ipオプションを使用して8.3バイナリを起動します。 配置に適した追加のコマンドライン オプションを含めます。

      mongod --shardsvr --replSet <replSetName> --port <port> --dbpath <path> --bind_ip localhost,<ip address>

      構成ファイルを使用している場合は、ファイルを更新してsharding.clusterRole: shardsvrreplication.replSetNamenet.portnet.bindIpを含めてから、 8を起動します。 3 バイナリ:

      sharding:
      clusterRole: shardsvr
      replication:
      replSetName: <string>
      net:
      port: <port>
      bindIp: localhost,<ip address>
      storage:
      dbpath: <path>

      配置に適したその他の構成を含めます。

    3. 次のセカンダリ ノードをアップグレードする前に、ノードがSECONDARY状態に回復するまで待機します。

      メンバーの状態を確認するには、rs.status()mongosh を発行します。

    4. セカンダリ ノードごとに繰り返します。

  2. レプリカセットのプライマリを降格します。

    mongoshをプライマリに接続し、 rs.stepDown()を使用してプライマリを降格し、新しいプライマリの選出を強制します。

    rs.stepDown()
  3. 降格したプライマリをアップグレードします。

    rs.status()でプライマリが降格し、別のノードがPRIMARY状態になったことが示されたら、降格したプライマリをアップグレードします。

    1. 降格したプライマリをシャットダウンします。

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

      db.adminCommand( { shutdown: 1 } )
    2. mongodバイナリを置き換えます。 8.3バイナリ。

    3. 8.3バイナリを起動します。

      --shardsvr--replSet--port--bind_ipオプションを使用して8.3バイナリを起動します。 配置に適した追加のコマンドライン オプションを含めます。

      mongod --shardsvr --replSet <replSetName> --port <port> --dbpath <path> --bind_ip localhost,<ip address>

      構成ファイルを使用している場合は、ファイルを更新してsharding.clusterRole: shardsvrreplication.replSetNamenet.portnet.bindIpを指定してから、 8を起動します。 3 バイナリ:

      sharding:
      clusterRole: shardsvr
      replication:
      replSetName: <string>
      net:
      port: <port>
      bindIp: localhost,<ip address>
      storage:
      dbpath: <path>

      配置に適したその他の構成を含めます。

4

重要

最初にすべてのコンフィギュレーションサーバーレプリカセット(CSRS)インスタンスをアップグレードし、次にすべてのシャードノードをアップグレードし、最後に mongos インスタンスをアップグレードします。これらのアップグレードを完了する前に mongos をアップグレードすると、互換性の問題が発生する可能性があります。

mongosインスタンスを8.3バイナリで置き換え、再起動します。 配置に適したその他の構成を含めます。

注意

シャーディングされたクラスター メンバーが異なるホスト上で実行されている場合、またはリモート クライアントがシャーディングされたクラスターに接続する場合は、 --bind_ipオプションを指定する必要があります。

mongos --configdb csReplSet/<rsconfigsver1:port1>,<rsconfigsver2:port2>,<rsconfigsver3:port3> --bind_ip localhost,<ip address>
5

mongoshを使用してクラスター内のmongosに接続し、 sh.startBalancer()を実行してバランサーを再度有効にします。

sh.startBalancer()

バランサーを再度有効にする方法の詳細については、「 バランサーを有効にする 」を参照してください

6

この時点で、 8.2と互換性のない8.3機能を使わずに8.3バイナリを実行できます。

これらの 8.3 機能を有効にするには、機能の互換性バージョン(FCV)を 8.3 に設定します。また、confirm を true に設定する必要があります。

Tip

下位互換性のないこうした機能を有効にすると、ダウングレード前に保持されていた下位互換性のない機能をすべて削除する必要があるため、ダウングレード プロセスが複雑になる場合があります。

ダウングレードの可能性を最小限に抑えるには、アップグレード後、バーンイン期間中にこれらの機能を有効にせずにデプロイを運用することをお勧めします。ダウングレードの可能性を最小限に抑えられたと確信できたら、これらの機能を有効にします。

mongosインスタンスで、 adminデータベースでsetFeatureCompatibilityVersionコマンドを実行します。

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

featureCompatibilityVersion (FCV) : "8.3 " に設定しますreplSetReconfig暗黙的に各シャードで を実行し、シャードレプリカ構成ドキュメントにterm フィールドを追加します。

コマンドは、新しい構成がレプリカセット ノードの大部分に伝播するまで完了しません。

このコマンドは、内部 システムコレクションへの書込みを実行する必要があります。コマンドが完了しない場合は、mongosで操作が冪等であるため、安全にコマンドを再試行できます。

注意

setFeatureCompatibilityVersionがシャーディングされたクラスターで実行されている場合、チャンクの移行、分割、マージはConflictingOperationInProgressで失敗する可能性があります。

警告

mongos FCV の互換性

mongosmongodバイナリは、機能の互換性バージョン(FCV)が よりも大きいmongos インスタンスに接続できません。例、 MongoDB 8 は接続できません。2 バージョンmongos 8から.3FCV 8が. に設定されているシャーディングされたクラスター。3ただし、 MongoDB 8 を接続することは可能です。2 バージョンmongos 8から.3FCV 8が. に設定されているシャーディングされたクラスター。2

アップグレード後にスタートアップの問題が発生した場合は、 MongoDBサポート にお問い合わせください。