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

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

項目一覧

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

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

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

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

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

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

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

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

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

警告

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

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

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

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

レプリカセットをアップグレードする前に、「5.0 のパフォーマンスに関する考慮事項」で、5.0 にアップグレードした際に考えられるパフォーマンスへの影響について確認してください。

TTL 構成が有効であることを確認します。アップグレードする前に、expireAfterSecondsNaN に設定されている TTL インデックスを削除または修正してください。MongoDB 5.0 以降では、expireAfterSecondsNaN に設定すると、expireAfterSeconds0 に設定するのと同じ効果があります。詳しくは、「NaN に設定した場合の expireAfterSeconds TTL の動作」を参照してください。

すべてのレプリカセットノードはバージョン 4.4 を実行している必要があります。レプリカセットを 4.2 シリーズ以前からアップグレードするには、最初にレプリカセットのすべてのノードを最新の 4.4 シリーズのリリースにアップグレードしてから、MongoDB 4.4 から 5.0 にアップグレードする手順に従います。

レプリカセットのノードをアップグレードする前に、そのノードが完全にシャットダウンされていることを確認してください。

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

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

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

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

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

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

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

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

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

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

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

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

警告

MongoDB の既存のインスタンスを MongoDB 5.0.15にアップグレードする場合、 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コマンドはアップグレードされたインスタンスを起動します。

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

1

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

  1. mongod インスタンスをシャットダウンし、4.4 バイナリを 5.0 バイナリに置き換えます。

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

2

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

3

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

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

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

4

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

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

Tip

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

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

Tip

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

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

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

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

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

戻る

スタンドアロン