MongoDB の更新
Server CE/Server Pro の新しいリリースは、その中でサポートされる MongoDB のバージョンに関する変更を示します、 リリースノート.
MongoDB を更新すべきですか?
あなたは のみ Server CE/Server Pro のインスタンスをアップグレードする予定がある場合に限り、MongoDB のバージョンの更新を検討するべきです。
現在(または対象)のバージョンに対して推奨されるものより新しい MongoDB バージョンを実行している場合、変更を行う必要はありません。
MongoDB のバージョンをダウングレードしてはいけません。
現在の MongoDB バージョンに関連している可能性がある特定の問題が発生した場合は、遠慮なく 問題を報告してください 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 のバージョンを更新する手順は次のとおりです:
アップグレードする予定の Server CE/Server Pro のバージョンを決定します。
その特定の Overleaf Server CE/Server Pro リリースで推奨される MongoDB のバージョンを見つけます。
MongoDB を対象バージョンにアップグレードする手順に従います。
Server CE/Server Pro のイメージバージョンをアップグレードし、インスタンスを再起動します。
私たちの推奨は常に Server CE/Server Pro を利用可能な最新バージョンにアップグレードすることです。常にサポートされることが保証されているためです(Server Pro ユーザーのみ)。
Server CE/Pro のアップグレードを行う際には、デプロイされているメジャーバージョンの最新リリースにまずアップグレードすることを推奨します 前に その後で最新のリリースにアップグレードします 次の メジャーバージョンへ。デプロイが最新から複数のメジャーバージョン遅れている場合は、多段階のアップグレードを実行する必要があります。
例えば、3.5.10 を実行している場合は、3.5.13 にアップグレード -> フルプロジェクト履歴移行を実行 -> 4.2.9 -> 5.5.4 の順に行う必要があります。
あなたは 決して メジャーバージョンをスキップしないでください(3.5.10 -> 5.5.4)。Toolkit を使用していて最新から複数のメジャーバージョン遅れている場合、手動での多段階アップグレードを行う必要があるため、 使用してはいけません スクリプトを bin/upgrade 。
ロールバックが必要になった場合に備えて、各メジャーバージョンのアップグレードごとに 一貫したバックアップ 前に を取得することが重要です。
バージョンサポート情報
以前のバージョンに戻すことを決めた場合、この表は以前の Server CE/Server Pro リリースに推奨される MongoDB のバージョンを示しますが、あなたは 決して MongoDB のバージョンをダウングレードすべきではありません。
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
上記の最小機能互換バージョンは、表示されている Overleaf のバージョンで使用することが推奨される対応する MongoDB バージョンに基づいています。より高いバージョンを使用する予定がある場合、MongoDB には独自の最小要件が存在します。
MongoDB と連携して使用するためにサポートされる MongoDB Node.js ドライバのバージョンを指定した互換性表を見ることができます こちら.
各 MongoDB バージョンのサポート終了(EOL)状況を確認できます こちら.
MongoDB のアップグレード
MongoDB は 段階的なアップグレードを必要とします。そのため、たとえば 4.0 から 5.0に直接移行することはできません。まず 4.2 から 4.4を更新し、その後に 5.0.
MongoDB は安定版に偶数のバージョン番号を使用します。
Docker 以外で MongoDB を実行している場合の更新手順
以下は MongoDB をアップグレードする際の mongodb.com の更新手順へのリンクです。
のための手順 5.0 およびそれ以降はスタンドアロンではなくレプリカセットのインストールを指示しています。Server Pro/CE 4.0.1+ はトランザクションを使用するため、MongoDB はレプリカセットとして実行する必要があります。
MongoDB 3.2 から 4.2 のドキュメントは現在以下で利用可能です https://www.mongodb.com/docs/legacy/
基本的手順
ほとんどの場合、実際に mongo バージョンを更新する前に互換性フラグを設定する必要があります。手順は次のとおりです:
MongoDB のリリースノートに記載されているように互換性フラグを設定します(下の例を参照)。
その後 mongo イメージを更新します:
Toolkit ユーザー を更新します
MONGO_VERSIONで、例えばMONGO_VERSION=6.0Docker Compose ユーザー のバージョンを更新します
mongoイメージタグ、 例:services -> mongo -> image: mongo:6.0;
例:MongoDB を からアップグレードする 5.0 から 6.0
まず MongoDB が 実行されていることを確認しましょう 6.0:
Overleaf Toolkit ユーザー:
Docker Compose ユーザー:
に従えば、 アップグレード手順唯一の要件は featureCompatibilityVersion が に設定されていることです 5.0。これは MongoDB シェルを開いて示されたコマンドを実行することで行います:
Overleaf Toolkit ユーザー:
Docker Compose ユーザーは次を実行して docker compose exec mongo mongosh シェルを取得し、Toolkit ユーザーと同じコマンドを実行できます。
Overleaf Toolkit ユーザー:
次に、Server CE/Server Pro と MongoDB のインスタンスを bin/stop コマンドを使って停止し、 MONGO_VERSION=6.0 を config/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.yml ファイルを更新して使用するようにします 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 上記のコマンドを参照してください。
に従えば、 アップグレード手順唯一の要件は featureCompatibilityVersion が に設定されていることです 6.0。これは MongoDB シェルを開いてコマンドを実行することで行います db.adminCommand({ setFeatureCompatibilityVersion: "6.0" }) .
Overleaf Toolkit ユーザー:
次に、Server CE/Server Pro と MongoDB のインスタンスを bin/stop コマンドを使って停止し、 MONGO_VERSION=7.0 を config/overleaf.rcに設定してから、 mongo サービスを bin/up mongo) を使って再起動し、更新が正常に行われたことを確認します。
最後に、Server CE/Server Pro のイメージバージョンを対象バージョンに更新し、 bin/up -d コマンドを使って全てのサービスを再作成します。
例:MongoDB を からアップグレードする 7.0 から 8.0 (Toolkit ユーザー)
まず、上記のコマンドを使用して MongoDB が 実行されていることを確認して開始してください 7.0 を使って mongod --version 上記のコマンドを参照してください。
に従えば、 アップグレード手順唯一の要件は featureCompatibilityVersion が に設定されていることです 7.0。これは MongoDB シェルを開いてコマンドを実行することで行います db.adminCommand({ setFeatureCompatibilityVersion: "7.0", confirm: true })。これには追加の confirm: true パラメータが必要になったことに注意してください。
次に、Server CE/Server Pro と MongoDB のインスタンスを bin/stop コマンドを使って停止し、 MONGO_VERSION=8.0 を config/overleaf.rcに設定してから、 mongo サービスを bin/up mongo) を使って再起動し、更新が正常に行われたことを確認します。
最後に、Server CE/Server Pro のイメージバージョンを対象バージョンに更新し、 bin/up -d コマンドを使って全てのサービスを再作成します。
Docker compose ユーザー向けの同等のコマンド
Docker compose ユーザーにとって、同等のコマンドは次のとおりです:
docker compose exec mongo mongod --versionmongo バージョンを表示するにはdocker compose exec mongo mongosh管理コマンド用の mongo シェルを起動するにはdocker compose stopサーバーを停止するコマンドを編集して
docker-compose.ymlファイルを更新して使用するようにしますimage: mongo:6.0mongo バージョンをアップグレードするdocker compose up mongoを使用して mongo サービスを再起動し、更新が正常に行われたことを確認するを編集して
docker-compose.ymlファイルを更新して使用するようにしますimage: sharelatex:VERSIONイメージバージョンをアップグレードするにはdocker compose up全てのサービスを再作成するには。
カスタムロールの作成
バージョン 5.5.1で、MongoDB の feature compatibility version を検証する起動時チェックを導入しました。MongoDB データベースが認証(例:基本認証)を使用している場合、 sharelatex コンテナは起動しない可能性があり、"admin に対してコマンドを実行する権限がありません" という権限エラーを表示する場合があります。
これを解決するために、以下の手順で MongoDB に新しいロールを作成してデータベースにアクセスするために使用するユーザーアカウントに割り当てるか、デプロイの起動を妨げないようにチェックの失敗を許可するために ALLOW_MONGO_ADMIN_CHECK_FAILURES=true を設定することができます。
この新しいロールは のみ クラスタ全体の MongoDB サーバーパラメータを読み取る権限を付与し、監視目的で再利用することができます、
最終更新