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

レプリカセットを 6.0 にアップグレード

項目一覧

  • アップグレードの推奨事項とチェックリスト
  • 前提条件
  • 6.0 バイナリのダウンロード
  • アップグレード手順
  • 追加のアップグレード手順

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

次の手順では、レプリカセット メンバーである mongodをバージョン5.0から6.0にアップグレードする手順について説明します。

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

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

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

5.0 シリーズより前のバージョンの場合、最終的に 5.0 シリーズになるまで、メジャー リリースを順次アップグレードする必要があります。たとえば、4.4 シリーズを実行している場合、まず 5.0 にアップグレードした後に、6.0 にアップグレードする必要があります。

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

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

警告

v3.6 で非推奨になったレガシー命令コードをドライバーが使用している場合は、サポートされている命令コードを使用するバージョンにドライバーを更新してください。 レガシー命令コードを使用するドライバーはサポートされなくなりました。

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

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

6.0 にアップグレードした後にダウングレードする必要がある場合は、5.0 の最新パッチ リリースにダウングレードすることをお勧めします。

すべてのレプリカセット ノードはバージョン 5.0 を実行中でなくてはなりません。レプリカセットを 4.4 シリーズ以前からアップグレードするには、初めにレプリカセットのすべてのノードを最新の 5.0 シリーズ リリースにアップグレードしてから、次に MongoDB 5.0 から 6.0 にアップグレードする手順に従います。

5.0 レプリカセットでは、 featureCompatibilityVersion"5.0" に設定する必要があります。

レプリカセットのすべてのノード featureCompatibilityVersion"5.0"に設定されていることを確認するには、各レプリカセット ノードに接続し、featureCompatibilityVersionを確認します。

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

すべてのノードは "featureCompatibilityVersion" : { "version" : "5.0" } を含む結果を返す必要があります。

featureCompatibilityVersionを設定または更新するには、プライマリで次のコマンドを実行します。データを保持するノードの過半数が利用可能である必要があります。

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

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

replSetGetStatus コマンドを発行して、レプリカセット ノードが ROLLBACK または RECOVERING 状態になっていないことを確認します。

db.adminCommand( { replSetGetStatus: 1 } )

MongoDB を MongoDB の aptyumdnfzypper のいずれかのリポジトリからインストールした場合、6.0 へのアップグレードにはパッケージ マネージャーを使用する必要があります。

Linux システムの場合は、6.0 のインストール手順を参照してください。新しいリリース用にリポジトリを追加して、実際にアップグレードを行う方法を解説しています。

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

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

警告

MongoDB の既存のインスタンスを MongoDB 6.0.5 にアップグレードする場合、 mongod.confファイルにfork: trueが設定されていると、そのインスタンスが起動に失敗する可能性があります。

アップグレードの問題は、 .debまたは.rpmインストール パッケージを使用するすべての MongoDB インスタンスに影響します。 tarball( .tgz )リリースまたはその他のパッケージ タイプを使用するインストールは影響を受けません。 詳細については、 SERVER-74345 を参照してください。

fork: true設定を削除するには、システム ターミナルから次のコマンドを実行します。

systemctl stop mongod.service
sed -i.bak '/fork: true/d' /etc/mongod.conf
systemctl start mongod.service

設定が削除された後に、2 番目のsystemctlコマンドはアップグレードされたインスタンスを起動します。

MongoDB 5.0 から 6.0 へのアップグレードは、「ローリング」アップグレードを使用して、他のノードが利用可能な間に個別にノードをアップグレードすることで、ダウンタイムを最小限に抑えることができます。

1

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

db.adminCommand( { shutdown: 1 } )
2

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

  1. 5.0 バイナリを 6.0 バイナリに置き換えます。

  2. ノードを再起動します。

3

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

4

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

  1. ステップダウンしたプライマリをシャットダウンし、mongod バイナリを 6.0 バイナリに置き換えます。

  2. ノードを再起動します。

5

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

これらの 6.0 の機能を有効にするには、機能の互換性バージョン(fCV)を 6.0 に設定します。

Tip

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

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

Tip

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

プライマリノードの admin データベースでsetFeatureCompatibilityVersionコマンドを実行します。

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

featureCompatibilityVersion (fCV) : "6.0"を設定すると、暗黙的に replSetReconfig を実行して term フィールドを構成ドキュメントに追加し、新しい構成がレプリカセット ノードの過半数に伝播するまでブロックします。

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

戻る

スタンドアロン