Azure Database for PostgreSQL - フレキシブル サーバーでのメジャー バージョン アップグレード

適用対象: Azure Database for PostgreSQL - フレキシブル サーバー

Azure Database for PostgreSQL フレキシブル サーバーでは、PostgreSQL バージョン 16、15、14、13、12、11 がサポートされています。 Postgres コミュニティでは、新機能を含む新しいメジャー バージョンを年に 1 回程度リリースしています。 さらに、各メジャー バージョンでは、マイナー リリースの形式で定期的なバグ修正を受け取ります。 マイナー バージョンのアップグレードには、既存のアプリケーションと下位互換性のある変更が含まれます。 Azure Database for PostgreSQL フレキシブル サーバー では、お客様のメンテナンス期間中に、マイナー バージョンが定期的に更新されます。

メジャー バージョンのアップグレードは、マイナー バージョンのアップグレードよりも複雑です。 既存のアプリケーションと下位互換性がない可能性がある内部変更や新機能が含まれる場合があります。

Azure Database for PostgreSQL フレキシブル サーバーには、クリックするだけでサーバーのインプレース メジャー バージョン アップグレードを実行する機能があります。 この機能では、サーバーにアクセスするユーザーとアプリケーションの中断を最小限に抑えることで、アップグレード プロセスを簡略化します。

インプレース アップグレードでは、メジャー バージョンのアップグレード後も、現在のサーバーのサーバー名やその他の設定が保持されます。 データの移行やアプリケーション接続文字列の変更は必要ありません。 インプレース アップグレードはデータ移行よりも迅速で、ダウンタイムが短縮されます。

Process

インプレース メジャー バージョン アップグレードに関する重要な考慮事項をいくつか以下に示します。

  • インプレース メジャー バージョン アップグレードのプロセス中に、Azure Database for PostgreSQL フレキシブル サーバーによって、事前チェック手順が実行され、アップグレード失敗の原因になる可能性がある潜在的な問題が特定されます。

    事前チェックで非互換性が見つかった場合、アップグレードの事前チェックが失敗したことを示すログ イベントがエラー メッセージと共に作成されます。

    事前チェックが成功した場合、Azure Database for PostgreSQL フレキシブル サーバーによって、サービスが停止され、アップグレード開始直前の暗黙的なバックアップが作成されます。 アップグレード エラーが発生した場合、サービスではこのバックアップを使用して、データベース インスタンスを以前のバージョンに復元できます。

  • Azure Database for PostgreSQL フレキシブル サーバーでは、pg_upgrade ツールを使用してインプレース メジャー バージョン アップグレードが実行されます。 このサービスでは、バージョンをスキップし、新しいバージョンに直接アップグレードする柔軟性が提供されます。

  • 高可用性 (HA) が有効なサーバーのインプレース メジャー バージョン アップグレード中に、サービスによって HA が無効化され、プライマリ サーバーでアップグレードが実行され、アップグレードの完了後に HA が再度有効化されます。

  • ほとんどの拡張機能は、インプレース メジャー バージョン アップグレード中に新しいバージョンに自動的にアップグレードされますが、一部例外があります。

  • Azure Database for PostgreSQL フレキシブル サーバーのインプレース メジャー バージョン アップグレードのプロセスでは、サポートされている最新のマイナー バージョンが自動的にデプロイされます。

  • インプレース メジャー バージョン アップグレードは、短時間のダウンタイムが発生するオフライン操作です。 通常、ダウンタイムは 15 分未満です。 期間は、関係するシステム テーブルの数によって異なる場合があります。

  • アップグレード前の長時間実行トランザクションや高いワークロードにより、データベースのシャットダウンにかかる時間とアップグレードの所要時間が長くなる可能性があります。

  • インプレース メジャー バージョン アップグレードが成功した後、自動で以前のバージョンに戻す方法はありません。 ただし、アップグレード前の特定の時点へのポイントインタイム リカバリー (PITR) を実行すると、以前のバージョンのデータベース インスタンスを復元できます。

  • Azure Database for PostgreSQL フレキシブル サーバーは、アップグレード時にデータベースのスナップショットを取得します。 スナップショットはアップグレードの開始前に取得されます。 アップグレードに失敗した場合、システムはデータベースを自動的にスナップショットの状態に復元します。

  • PostgreSQL 16 はロールベースのセキュリティ対策を導入しています。 Azure Database for PostgreSQL フレキシブル サーバーのメジャー バージョンへのアップグレード後、サーバー上で最初に作成されたユーザー (ADMIN オプションが付与されているユーザー) は、重要なメンテナンス操作のために、他のロール以上の管理特権を持つようになりました。

アップグレード後/移行

メジャー バージョンのアップグレードが完了したら、各データベースで ANALYZE コマンドを実行して、pg_statistic テーブルを更新することをお勧めします。 そうしなければ、パフォーマンスの問題が発生する可能性があります。

postgres=> analyze;
ANALYZE

メジャー バージョン アップグレード ログ

メジャー バージョン アップグレード ログ (PG_Upgrade_Logs) を使用すると、詳細なサーバー ログに直接アクセスできます。 PG_Upgrade_Logs のアップグレード プロセスへの統合は、新しい PostgreSQL バージョンへのよりスムーズで透過的な移行を確実に行うのに役立ちます。

次のサーバー パラメーターを使用して、サーバー ログと同じ方法でメジャー バージョン アップグレード ログを構成できます。

  • この機能を有効にするには、logfiles.download_enableON に設定します。
  • ログ ファイルの保持期間を日数で定義するには、logfiles.retention_days を使用します。

アップグレード ログのセットアップ

PG_Upgrade_Logs の使用を開始するために、Azure portal または Azure CLI を介してログを構成できます。 ワークフローに最適な方法を選んでください。

アップグレード ログには、サーバー ログの UI を使用してアクセスできます。 そこで、PostgreSQL メジャー バージョンのアップグレードの進行状況と詳細をリアルタイムで監視できます。 この UI では、ログを表示するための一元的な場所が提供されるため、アップグレード プロセスをより簡単に追跡およびトラブルシューティングできます。

アップグレード ログを使用する利点

  • 分析情報の診断: PG_Upgrade_Logs では、アップグレード プロセスに関する貴重な分析情報が提供されます。 実行された操作に関する詳細情報がキャプチャされ、発生したエラーまたは警告が強調表示されます。 このレベルの詳細情報は、アップグレード中に発生する可能性のある問題の診断と解決に有効であり、移行がよりスムーズになります。
  • 効率的なトラブルシューティング: これらのログに直接アクセスすることで、アップグレードの潜在的な障害を迅速に特定して対処し、ダウンタイムを短縮して、運用に対する影響を最小限に抑えることができます。 このログは、より効率的で効果的な問題解決を可能にすることで、重要なトラブルシューティング ツールとして機能します。

制限事項

インプレース メジャー バージョン アップグレードで事前チェック操作が失敗した場合、アップグレードは失敗し、次のすべての制限事項に関する詳細なエラー メッセージが表示されます。

  • インプレース メジャー バージョン アップグレードでは、現在、読み取りレプリカはサポートされていません。 読み取りレプリカとして機能するサーバーがある場合は、プライマリ サーバーでアップグレードを実行する前にレプリカを削除する必要があります。 アップグレード後、レプリカを作成し直すことができます。

  • Azure Database for PostgreSQL - フレキシブル サーバーには、フレキシブル サーバーがデプロイされている仮想ネットワーク内の宛先ポート 5432 と 6432、およびログ アーカイブ用の Azure Storage へのトラフィックを送受信する機能が必要です。

    デプロイされたサブネット内のフレキシブル サーバーとの間のトラフィックを制限するようにネットワーク セキュリティ グループ (NSG) を構成する場合は、必ず、サブネット内の宛先ポート 5432 と 6432 へのトラフィックを許可してください。 サービス タグ Azure Storage を宛先として使用して、Azure Storage へのトラフィックを許可します。

    ネットワーク ルールが正しく設定されていない場合、メジャー バージョン アップグレード後に HA が自動的に有効にならないので、HA を手動で有効にする必要があります。 NSG ルールを変更して、宛先ポートとストレージのトラフィックを許可し、サーバーで HA 機能を有効にします。

  • インプレース メジャー バージョン アップグレードでは、特定の拡張機能がサポートされておらず、特定の拡張機能のアップグレードにはいくつかの制限があります。 拡張機能 Timescaledbpgauditdblinkorafcepg_partmanpostgres_fdw はすべての PostgreSQL バージョンでサポートされていません。

  • PostGIS 拡張機能がインストールされているサーバーをアップグレードする場合は、以下を明示的に含むように search_path サーバー パラメーターを設定します。

    • PostGIS 拡張機能のスキーマ。
    • PostGIS に依存する拡張機能。
    • 次の拡張機能の依存関係として機能する拡張機能: postgispostgis_rasterpostgis_sfcgalpostgis_tiger_geocoderpostgis_topologyaddress_standardizeraddress_standardizer_data_us fuzzystrmatch (postgis_tiger_geocoder に必須)。
  • 論理レプリケーション スロットが構成されたサーバーはサポートされていません。

  • SSDv2 ストレージを使用するサーバーでは、メジャー バージョンのアップグレードができません。

次のステップ