スタンドアロンの 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の最新パッチ リリースにダウングレードすることをお勧めします。
前提条件
スタンドアロンの mongod
をアップグレードする前に、「5.0 のパフォーマンスに関する注意事項」で、5.0 にアップグレードした際に考えられるパフォーマンスへ影響について確認してください。
TTL 設定が有効か確認する
TTL 構成が有効であることを確認します。アップグレードする前に、expireAfterSeconds
が NaN
に設定されている TTL インデックスを削除または修正してください。MongoDB 5.0 以降では、expireAfterSeconds
を NaN
に設定すると、expireAfterSeconds
を 0
に設定するのと同じ効果があります。詳しくは、「NaN
に設定した場合の expireAfterSeconds
TTL の動作」を参照してください。
クリーンシャットダウンの確認
機能の互換性バージョン
4.4 インスタンスの featureCompatibilityVersion
が "4.4"
に設定されている必要があります。featureCompatibilityVersion
を確認するには、次のコマンドを実行します。
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
この操作では、"featureCompatibilityVersion" : { "version" : "4.4" }
を含む結果が返されます。
featureCompatibilityVersion
を設定または更新するには、次のコマンドを実行します。
db.adminCommand( { setFeatureCompatibilityVersion: "4.4" } )
レプリカセットへの変更を検討する
アップグレードする前に、スタンドアロン環境をレプリカセットに変更することを検討してください。レプリカセットは、MongoDB におすすめのデプロイ構成です。
5.0 バイナリのダウンロード
パッケージマネージャー経由
MongoDB を MongoDB の apt
、yum
、dnf
、zypper
のいずれかのリポジトリからインストールした場合、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
コマンドはアップグレードされたインスタンスを起動します。
下位互換性のない 5.0 の機能の有効化
この時点で、4.4 と互換性のない 5.0 の機能を使わずに 5.0 のバイナリを実行できます。
これらの 5.0 の機能を有効にするには、機能の互換性バージョン(fCV
)を 5.0 に設定します。
Tip
下位互換性のないこうした機能を有効にすると、ダウングレード前に保持されていた下位互換性のない機能をすべて削除する必要があるため、ダウングレード プロセスが複雑になる場合があります。
ダウングレードの可能性を最小限に抑えるには、アップグレード後、バーンイン期間中にこれらの機能を有効にせずにデプロイを運用することをお勧めします。ダウングレードの可能性を最小限に抑えられたと確信できたら、これらの機能を有効にします。
以下のように、admin
データベースに対して setFeatureCompatibilityVersion
コマンドを実行します。
db.adminCommand( { setFeatureCompatibilityVersion: "5.0" } )
このコマンドは、内部システム コレクションへの書込みを実行する必要があります。何らかの理由でコマンドが正常に完了しない場合は、操作がべき等であるため、安全にコマンドを再試行できます。
注意
アップグレードが完了すると、インデックス サイズが大幅に増加する可能性があります。 インデックスのサイズを表示するには、 dbStats.indexSize
を参照してください。 インデックス サイズが増加するのは、インデックス キーに保存されている時間枠に関連するデータが原因です。
アップグレード後にインデックスが大幅に大きくなり、インデックス サイズを小さくしたい場合は、MongoDB の技術サポート担当者に問い合わせて、解決策について考えてください。
追加のアップグレード手順
レプリカ セットをアップグレードするには、「レプリカ セットを 5.0 にアップグレードする」を参照してください。
シャーディングされたクラスターをアップグレードするには、「シャーディングされたクラスターを 5.0 にアップグレードする」を参照してください。