正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

外部のPostgreSQLデータベースをアップグレードする

PostgreSQLデータベースエンジンをアップグレードする際は、PostgreSQLコミュニティおよびクラウドプロバイダーが推奨するすべてのステップに従うことが重要です。PostgreSQLデータベースには2種類のアップグレードがあります:

  • マイナーバージョンアップグレード: これらには、バグやセキュリティ修正のみが含まれます。これらは常に、既存のアプリケーションデータモデルと下位互換性があります。

    マイナーバージョンアップグレードプロセスは、PostgreSQLのバイナリを置き換えてデータベースサービスを再起動することで構成されます。データディレクトリは変更されません。

  • メジャーバージョンアップグレード: これらは内部ストレージ形式とデータベースカタログを変更します。その結果、クエリオプティマイザーが使用するオブジェクト統計は新しいバージョンに転送されないため、ANALYZEを使用して再構築する必要があります。

    文書化されたメジャーバージョンアップグレードプロセスに従わないと、多くの場合、データベースパフォーマンスの低下やデータベースサーバーでの高いCPU使用率につながります。

すべての主要なクラウドプロバイダーは、pg_upgradeユーティリティを使用して、データベースインスタンスのインプレースメジャーバージョンアップグレードをサポートしています。ただし、パフォーマンスの低下やデータベースの中断のリスクを減らすために、アップグレード前後の手順に従う必要があります。

外部データベースプラットフォームのメジャーバージョンアップグレード手順を注意深くお読みください:

メジャーバージョンアップグレード後には、必ずデータベースをANALYZEしてください

オプティマイザー統計はpg_upgradeによって転送されないため、メジャーバージョンアップグレード後にpg_statisticテーブルを更新するには、ANALYZE操作を実行することが必須です。これは、アップグレードされたPostgreSQLサービス/インスタンス/クラスター上のすべてのデータベースに対して行う必要があります。

メンテナンス期間を計画する際には、この操作がGitLabのパフォーマンスを著しく低下させる可能性があるため、ANALYZEの時間を考慮に入れる必要があります。

ANALYZE操作を高速化するには、njobs個のコマンドを同時に実行することで、ANALYZEコマンドを並行して実行する--analyze-only --jobs=njobsオプションを付けて、vacuumdbユーティリティを使用します。