Snowflake Postgresのバージョンアップグレード

PostgresはX.Yバージョン管理スキームを使用します。Xはメジャーバージョン、Yはそのメジャーバージョン内のマイナーバージョンです。

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

Snowflake Postgresでは、インスタンスの 変更 アクションを介してメジャーバージョンのアップグレードをスケジュールできます。これには:ref:`フェールオーバーメンテナンス<label-sfpg-maintenance-failover>`が必要です。

メジャーバージョンのアップグレードを開始するには、インスタンスに対する OWNERSHIP または OPERATE 権限が付与されたロールを使用する必要があります。

注釈

新しいメジャーバージョンにのみアップグレードできます。以前のメジャーバージョンにダウングレードすることはできません。

新しいインスタンスサイズ、ストレージサイズ、またはその両方を新しいバージョン番号とともに選択することで、メジャーバージョンのアップグレードとインスタンスのサイズ変更を組み合わせることができます。

Tip

アップグレードのメンテナンスフェールオーバーは他のインスタンスの 変更 メンテナンスフェールオーバー(以下を参照)よりも時間がかかる可能性があり、インスタンスを以前のメジャーバージョンにダウングレードすることはできないため、アクティブな本番インスタンスのメジャーバージョンのアップグレードを続行する前に、インスタンスの フォーク を使用してメジャーバージョンのアップグレードを完全にテストすることをSnowflakeは強くお勧めします。

  1. ナビゲーションメニューで Postgres を選択します。

  2. Snowflake Postgresインスタンスを選択します。

  3. 右上の Manage メニューで Modify を選択します。

  4. 新しいバージョンが利用可能な場合は、Postgresバージョンドロップダウンメニューから選択できます。

  5. Save ボタンを選択して、変更を確認します。

メジャーバージョンアップグレードによるSnowflake Postgresインスタンスの変更

注釈

メンテナンスウィンドウが設定されておらず、SQL を介してアップグレードアクションを作成するときに APPLY ON '<timestamp>' で実行時間を指定していない場合、SQL を介してアップグレードアクションを作成するときに APPLY IMMEDIATELY を使用する場合と同様に、新しいインスタンスが設定されて準備ができ次第、アップグレードメンテナンスフェールオーバーが続行されます。

APPLY ON '<timestamp> を使用して将来の指定時刻にアップグレードメンテナンスフェールオーバーをスケジュールする場合、その時刻は現在の時刻から最大3日先まで指定できます。

メジャーバージョンのアップグレードメンテナンスの仕組み

Postgresのメジャーバージョンのアップグレードは、他のインスタンス管理操作とは異なる方法で動作します。プロセスを開始すると、Snowflake Postgresは次のステップを実行します。

  1. 他の 変更 アクションと同様に、アップグレード用に非表示のレプリカがプロビジョニングされます。

  2. スケジュールされたメンテナンス時刻になると:

    • 現在のプライマリインスタンスは書き込みを防ぐためにロックされます。

    • 非表示のレプリカは pg_upgrade を使用してアップグレードされます。期間は、データサイズではなく、データベース内の*オブジェクトの数*によって決まります。

  3. アップグレードが完了したら、新しくアップグレードしたインスタンスにフェールオーバーします。

重要な注意点 :

  • メジャーバージョンの変更はアプリケーションの互換性に影響する可能性があります。アップグレードする前に、新しい PostgreSQL バージョンに対してアプリケーションをテストすることをお勧めします。

  • 読み取りレプリカは、プライマリインスタンスとは別にメジャーバージョンをアップグレードすることはできません。読み取りレプリカは、そのプライマリでメジャーバージョンのアップグレードを実行すると自動的にアップグレードされますが、そのプライマリがアップグレードされ、新しいバックアップが作成された場合にのみアップグレードされます。それまで、レプリカは引き続き使用できますが、古い状態です。

  • HA インスタンス(存在する場合)も、プライマリがアップグレードされ、新しいバックアップが作成された後に自動的にアップグレードされます。それまでは、プライマリに有効な HA インスタンスは存在しません。

  • メンテナンスフェールオーバーによるサービスの中断は、他の 変更 アクションに必要な中断よりも長くなりますが、通常は数分以内で終わるはずです。

  • アップグレードが失敗した場合、インスタンスは自動的に元のインスタンスに戻ります。

Postgresのマイナーバージョンのアップグレード

Snowflakeは、時間の経過とともにPostgresの新しいマイナーバージョンでデータベースを自動的にアップグレードします。

Postgresの各リリースについて、当社はセキュリティ関連のすべての問題とバグを調査します。重大と見なされたものについては、お客様のデータが確実に安全になるように、アップグレードを優先します。緊急の更新が必要な場合は、メンテナンスウィンドウ中にその更新を実行します。

重大ではない修正については、次のいずれかの方法でデータベースを段階的に更新します。

  • リソースの変更など、インスタンスの置き換えを必要とするインスタンス管理操作中にインスタンスを更新する。

  • HA フェールオーバー後に高可用性スタンバイを更新する。HA フェールオーバーが発生した場合、新しくビルドされた HA インスタンスは最新のポイントリリースを受け取ります。

また、インスタンスの 更新 により、インスタンスと HA インスタンス(存在する場合)が利用可能な最新のマイナーバージョンに確実にアップグレードされます。