databaseMongoDB の更新

circle-info

Server CE/Server Pro の新しいリリースは、その中でサポートされる MongoDB のバージョンに関する変更を示します、 リリースノートarrow-up-right.

MongoDB を更新すべきですか?

あなたは のみ Server CE/Server Pro のインスタンスをアップグレードする予定がある場合に限り、MongoDB のバージョンの更新を検討するべきです。

現在(または対象)のバージョンに対して推奨されるものより新しい MongoDB バージョンを実行している場合、変更を行う必要はありません。

circle-exclamation

現在の MongoDB バージョンに関連している可能性がある特定の問題が発生した場合は、遠慮なく 問題を報告してくださいarrow-up-right Server CE ユーザーの場合は issue を、Server Pro ユーザーの場合は Overleaf サポートにお問い合わせください。

MongoDB バージョンの確認

を開くと、 mongo シェルは直ちに現在のバージョンを表示します。

Overleaf Toolkit ユーザー:

bin/docker-compose exec mongo mongod --version
db version v5.0.24
Build Info: {
    "version": "5.0.24",
    "gitVersion": "f034f0c51b3dffef4b8c9452d77ede9888f28f66",
    "openSSLVersion": "OpenSSL 1.1.1f  31 Mar 2020",
    "modules": [],
    "allocator": "tcmalloc",
    "environment": {
        "distmod": "ubuntu2004",
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}

Docker Compose ユーザー:

更新手順

Server CE/Server Pro インスタンスのアップグレード中に MongoDB のバージョンを更新する手順は次のとおりです:

  1. アップグレードする予定の Server CE/Server Pro のバージョンを決定します。

  2. その特定の Overleaf Server CE/Server Pro リリースで推奨される MongoDB のバージョンを見つけます。

  3. MongoDB を対象バージョンにアップグレードする手順に従います。

  4. Server CE/Server Pro のイメージバージョンをアップグレードし、インスタンスを再起動します。

私たちの推奨は常に Server CE/Server Pro を利用可能な最新バージョンにアップグレードすることです。常にサポートされることが保証されているためです(Server Pro ユーザーのみ)。

triangle-exclamation
circle-exclamation

バージョンサポート情報

以前のバージョンに戻すことを決めた場合、この表は以前の Server CE/Server Pro リリースに推奨される MongoDB のバージョンを示しますが、あなたは 決して MongoDB のバージョンをダウングレードすべきではありません。

Server CE/Server Pro
MongoDB バージョン
最小機能互換バージョン
Node.js ドライバがサポートする最大バージョン

2.0.x

3.4

-

-

2.1.x から 2.4.x

3.6

-

-

>=2.5.0

4.0

-

-

>=3.1.0

4.2

-

-

>=3.2.0

4.4

-

-

>=4.2.0

5.0

-

-

>=5.1.0

6.0

-

-

>=5.3.1

6.0

5.0

8.0

>=5.5.0

6.0

6.0

8.0

6.0.0

8.0

8.0

8.0

triangle-exclamation

MongoDB と連携して使用するためにサポートされる MongoDB Node.js ドライバのバージョンを指定した互換性表を見ることができます こちらarrow-up-right.

各 MongoDB バージョンのサポート終了(EOL)状況を確認できます こちらarrow-up-right.

MongoDB のアップグレード

MongoDB は 段階的なアップグレードを必要とします。そのため、たとえば 4.0 から 5.0に直接移行することはできません。まず 4.2 から 4.4を更新し、その後に 5.0.

circle-info

MongoDB は安定版に偶数のバージョン番号を使用します。

Docker 以外で MongoDB を実行している場合の更新手順

以下は MongoDB をアップグレードする際の mongodb.com の更新手順へのリンクです。

circle-info

のための手順 5.0 およびそれ以降はスタンドアロンではなくレプリカセットのインストールを指示しています。Server Pro/CE 4.0.1+ はトランザクションを使用するため、MongoDB はレプリカセットとして実行する必要があります。

circle-exclamation

基本的手順

ほとんどの場合、実際に mongo バージョンを更新する前に互換性フラグを設定する必要があります。手順は次のとおりです:

  1. MongoDB のリリースノートに記載されているように互換性フラグを設定します(下の例を参照)。

  2. その後 mongo イメージを更新します:

    1. Toolkit ユーザー を更新します MONGO_VERSIONで、例えば MONGO_VERSION=6.0

    2. Docker Compose ユーザー のバージョンを更新します mongo イメージタグ、 例: services -> mongo -> image: mongo:6.0;

例:MongoDB を からアップグレードする 5.0 から 6.0

まず MongoDB が 実行されていることを確認しましょう 6.0:

Overleaf Toolkit ユーザー:

Docker Compose ユーザー:

に従えば、 アップグレード手順arrow-up-right唯一の要件は featureCompatibilityVersion が に設定されていることです 5.0。これは MongoDB シェルを開いて示されたコマンドを実行することで行います:

Overleaf Toolkit ユーザー:

circle-info

Docker Compose ユーザーは次を実行して docker compose exec mongo mongosh シェルを取得し、Toolkit ユーザーと同じコマンドを実行できます。

Overleaf Toolkit ユーザー:

次に、Server CE/Server Pro と MongoDB のインスタンスを bin/stop コマンドを使って停止し、 MONGO_VERSION=6.0config/overleaf.rcに設定してから、 mongo サービスを bin/up mongo) を使って再起動し、更新が正常に行われたことを確認します。

最後に、Server CE/Server Pro のイメージバージョンを対象バージョンに更新し、 bin/up -d コマンドを使って全てのサービスを再作成します。

Docker Compose ユーザー:

次に、Server CE/Server Pro と MongoDB のインスタンスを docker compose stop コマンド、を実行し、 docker-compose.ymlarrow-up-right ファイルを更新して使用するようにします image: mongo:6.0に設定してから、 mongo サービスを docker compose up mongo コマンドを使って再起動し、更新が正常に行われたことを確認します。

最後に、Server CE/Server Pro のイメージバージョンを対象バージョンに更新し、 docker compose up コマンドを使って全てのサービスを再作成します。

例:MongoDB を からアップグレードする 6.0 から 7.0 (Toolkit ユーザー)

まず、上記のコマンドを使用して MongoDB が 実行されていることを確認して開始してください 6.0 を使って mongod --version 上記のコマンドを参照してください。

に従えば、 アップグレード手順arrow-up-right唯一の要件は featureCompatibilityVersion が に設定されていることです 6.0。これは MongoDB シェルを開いてコマンドを実行することで行います db.adminCommand({ setFeatureCompatibilityVersion: "6.0" }) .

Overleaf Toolkit ユーザー:

次に、Server CE/Server Pro と MongoDB のインスタンスを bin/stop コマンドを使って停止し、 MONGO_VERSION=7.0config/overleaf.rcに設定してから、 mongo サービスを bin/up mongo) を使って再起動し、更新が正常に行われたことを確認します。

最後に、Server CE/Server Pro のイメージバージョンを対象バージョンに更新し、 bin/up -d コマンドを使って全てのサービスを再作成します。

例:MongoDB を からアップグレードする 7.0 から 8.0 (Toolkit ユーザー)

まず、上記のコマンドを使用して MongoDB が 実行されていることを確認して開始してください 7.0 を使って mongod --version 上記のコマンドを参照してください。

に従えば、 アップグレード手順arrow-up-right唯一の要件は featureCompatibilityVersion が に設定されていることです 7.0。これは MongoDB シェルを開いてコマンドを実行することで行います db.adminCommand({ setFeatureCompatibilityVersion: "7.0", confirm: true })。これには追加の confirm: true パラメータが必要になったことに注意してください。

次に、Server CE/Server Pro と MongoDB のインスタンスを bin/stop コマンドを使って停止し、 MONGO_VERSION=8.0config/overleaf.rcに設定してから、 mongo サービスを bin/up mongo) を使って再起動し、更新が正常に行われたことを確認します。

最後に、Server CE/Server Pro のイメージバージョンを対象バージョンに更新し、 bin/up -d コマンドを使って全てのサービスを再作成します。

Docker compose ユーザー向けの同等のコマンド

Docker compose ユーザーにとって、同等のコマンドは次のとおりです:

  • docker compose exec mongo mongod --version mongo バージョンを表示するには

  • docker compose exec mongo mongosh 管理コマンド用の mongo シェルを起動するには

  • docker compose stop サーバーを停止するコマンド

  • を編集して docker-compose.ymlarrow-up-right ファイルを更新して使用するようにします image: mongo:6.0 mongo バージョンをアップグレードする

  • docker compose up mongo を使用して mongo サービスを再起動し、更新が正常に行われたことを確認する

  • を編集して docker-compose.ymlarrow-up-right ファイルを更新して使用するようにします image: sharelatex:VERSION イメージバージョンをアップグレードするには

  • docker compose up 全てのサービスを再作成するには。

カスタムロールの作成

バージョン 5.5.1で、MongoDB の feature compatibility version を検証する起動時チェックを導入しました。MongoDB データベースが認証(例:基本認証)を使用している場合、 sharelatex コンテナは起動しない可能性があり、"admin に対してコマンドを実行する権限がありません" という権限エラーを表示する場合があります。

これを解決するために、以下の手順で MongoDB に新しいロールを作成してデータベースにアクセスするために使用するユーザーアカウントに割り当てるか、デプロイの起動を妨げないようにチェックの失敗を許可するために ALLOW_MONGO_ADMIN_CHECK_FAILURES=true を設定することができます。

circle-check

最終更新