PostgreSQL 9.6 から PostgreSQL 12 にアップグレードする方法
プラットフォームについて: サーバーと Data Center のみ。この記事は、サーバーおよび Data Center プラットフォームのアトラシアン製品にのみ適用されます。
目的
このページの内容は、Jira アプリケーションでサポートされていないプラットフォームに関連しています。したがって、アトラシアンは、そのためのサポートの提供を保証できません 。この資料は情報提供のみを目的としているため、お客様自身の責任でご使用ください。
Jira 8.19 以降では PostgreSQL 9.6 のサポートは廃止されます。Jira 8.19 へのアップグレードを予定しているが、現在のデータベース インスタンスが PostgreSQL 9.6 上で実行されている場合、Jira をサポート対象外のプラットフォームで実行することによる問題を回避するためにデータベースを PostgreSQL 12 にアップグレードすることを推奨します。
サポートされるプラットフォームの一覧については、「サポート対象のプラットフォーム」を参照してください。
準備
アップグレードを巻き戻す必要が発生したときのために、PostgreSQL のネイティブのバックアップ ユーティリティを使って現在のデータベース クラスタのデータをバックアップします。詳細については PostgreSQL 9.6 Documentation — Chapter 25. Backup and Restore をご確認ください。
PostgreSQL を Amazon RDS インスタンス上で実行している場合、スナップショットを作成してデータベース インスタンス全体をバックアップします。詳細については Amazon Relational Database Service のドキュメント — DB スナップショットの作成をご確認ください。
ソリューション
アップグレードを行うには、現在のデータベースに保存されているデータの量とデータベース クラスタの構成に応じ、次のいずれかの方法を選択します。
PostgreSQL 9.6 のデータ ファイルを PostgreSQL 12 にアップグレードする
この方法では pg_upgrade
ユーティリティをアップグレードに使い、古い PostgreSQL のデータ ファイルを新しいデータベース クラスタで再利用します。pg_upgrade
を link モードで実行し、新しいデータベース クラスタにファイルをコピーする代わりにハード リンクを作成することで、アップグレードのダウンタイムを短縮できます。
これはオフラインのアップグレード方法です。アップグレード中は Jira と PostgreSQL データベースの両方が利用できなくなります。
pg_upgrade
を link モードで実行すると、古いデータベース クラスタがレンダリングされ、アクセスできなくなります。古いクラスタにロールバックする必要が生じた場合、データをバックアップから復元する必要があります。
以降はアップグレード プロセスの概要です。詳細なアップグレード手順については PostgreSQL 12 Documentation — pg_upgrade をご確認ください。
PostgreSQL 12 をインストールし、新しいデータベース クラスタを初期化します。
古いクラスタで使われていた任意のカスタム共有オブジェクト ファイルをインストールし、認証を調整します。
Jira と PostgreSQL サーバーの両方を停止します。
pg_upgrade
を実行します (--link
オプションを追加してpg_upgrade
を link モードで実行します)。新しいデータベースで
ANALYZE
オペレーションを実行し、オプティマイザ統計情報を再生成します。
詳細については PostgreSQL 12 Documentation — ANALYZE をご確認ください。PostgreSQL 12 サーバーを開始し、必要に応じてアップグレード後のプロセスを実行します。
pg_upgrade.log
ファイルと、Jira が正常に動作していることを確認して、アップグレードを検証します。アップグレードが正常に完了したことを確認したら、古い PostgreSQL 9.6 データベース クラスタを削除します。
論理レプリケーションを使って PostgreSQL 12 に最小限のダウンタイムでアップグレードする
現在、高可用性のクラスタ構成で PostgreSQL を実行している場合、PostgreSQL のネイティブのレプリケーション ツールまたは外部のレプリケーション システムを使い、プライマリ サーバーのデータを、PostgreSQL 12 を実行している新しいスタンバイ サーバーに複製できます。この方法ではアップグレードのために Jira または現在のデータベース サーバーをオフラインにする必要はなく、スイッチオーバーを行うために必要な数秒間にダウンタイムを最小化できます。
詳細については次の情報をご確認ください。
PostgreSQL 12 Documentation — 18.6.3 Upgrading Data via Replication
PostgreSQL 12 Documentation — Chapter 26. High Availability, Load Balancing, and Replication
Amazon RDS インスタンスを PostgreSQL 12 にアップグレードする
PostgreSQL 9.6 を Amazon RDS インスタンス上で実行している場合、この方法を使用して PostgreSQL 12 にアップグレードできます。Amazon RDS はアップグレードの実行に内部で pg_upgrade
ユーティリティを使用します。
これはオフラインのアップグレード方法です。アップグレード中は Jira と PostgreSQL データベースの両方が利用できなくなります。
以降はアップグレード プロセスの概要です。詳細なアップグレード手順については、Amazon Relational Database Service Documentation — Amazon RDS の PostgreSQL DB エンジンのアップグレードをご確認ください。
現在の PostgreSQL データベースのスナップショットを作成します。
RDS のドキュメントの説明に従い、AWS Management Console、AWS の CLI、または RDS API 経由でアップグレードを開始します。
アップグレードされたデータベースのスナップショットを作成します。
新しいデータベースで
ANALYZE
オペレーションを実行し、オプティマイザ統計情報を再生成します。
詳細については PostgreSQL 12 Documentation — ANALYZE をご確認ください。必要に応じ、PostgreSQL の拡張機能をアップグレードします。
pg_upgrade_internal.log
およびpg_upgrade_server.log
ファイルと、Jira が正常に動作していることを確認して、アップグレードを検証します。