Docs Menu
Docs Home
/
データベース マニュアル
/ / /

レプリカセットを 8.0 にアップグレードする

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

MongoDB 8.0 では、 MongoDB 7.0 からのパフォーマンスの大幅な向上が導入されています。これには次のようなものがありますが、これらに限定されません。

  • 読み取りスループットが最大 36% 向上 します。

  • 一般的なウェブ アプリケーションのパフォーマンスが最大 32% 向上。

  • レプリケーション中の同時書込みを最大 20% まで高速化します。

注意

パフォーマンス向上の量は、ワークロードとデータベースインスタンスの構成によって異なる場合があります。

詳しくは、「 のパフォーマンス向上 」を参照してください。

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

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

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

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

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

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

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

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

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

配置のバイナリ バージョンをダウングレードするには、サポートによる支援が必要です。

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

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

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

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

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

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

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

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

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

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

db.adminCommand( { replSetGetStatus: 1 } )

MongoDB8.0 にアップグレードする際に、時系列コレクションではないsystem.buckets コレクションがある場合は、drop renameに応じて、アップグレードする前にそれらのコレクションを または8 する必要があります。0 パッチ リリース:

MongoDB 8.0.5 以降
アップグレードする前に、時系列コレクションではない system.buckets コレクションを削除する必要はありません。ただし、アップグレードが完了した後に、これらを削除するか、名前を変更する必要があります。
MongoDB 8.0.4 以前
アップグレードする前に、時系列コレクションではない system.buckets コレクションを削除するか、名前を変更する必要があります。すべてのsystem.buckets コレクションは、 8.0.0-8.0.4 のバージョンにアップグレードする前に、有効な時系列オプションを構成する必要があります。

時系列コレクションではない system.buckets コレクションがあるかどうかを判断するには、フィルタを指定した db.getCollectionInfos() メソッドを使用します。

db.getCollectionInfos(
{
$and: [
{ name: { $regex: /^system\.buckets/ } },
{ 'options.timeseries': { $exists: false } }
]
}
)

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

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

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

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

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

1

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

db.adminCommand( { shutdown: 1 } )
2

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

  1. 7.0バイナリを8.0バイナリに置き換えます。

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

3

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

4

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

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

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

5

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

これらの 8.0 機能を有効にするには、機能の互換性バージョン(FCV)を 8.0 に設定します。7.0 以降にアップグレードする場合は、confirm を true に設定する必要があります。

Tip

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

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

Tip

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

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

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

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

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

戻る

スタンドアロン

項目一覧