Snowflake Postgresインスタンスの管理¶
Snowflake Postgresは、さまざまなインスタンス管理操作を通じてインスタンスを管理できます。これらの操作は、インスタンスを運用可能かつ安全な状態に保つためのメンテナンスの一種です。
インスタンス管理操作を実行するには、短いサービスの中断が必要です。 アプリケーションがデータベースに自動的に再接続できることを確認してください。
注釈
認証情報を明示的にローテーションしない限り、インスタンスの接続文字列はインスタンス管理操作全体で同じままです。
インスタンスの健全性を確保する必要がある場合、お客様に代わってメンテナンス操作をスケジュールすることがあります(たとえば、インスタンスストレージサイズを 変更する など)。
プラットフォームによってインスタンスのメンテナンスがどのように実行されるかの詳細な説明については、 Snowflake Postgresのメンテナンス をご参照ください。
利用可能な操作¶
次の操作は、ダッシュボードのインスタンス詳細ページの Manage ドロップダウンメニューから利用できます。
フォーク - 既存のインスタンスから新しいインスタンスを作成します
変更 - インスタンスのサイズ、ストレージのサイズ、またはインスタンスのPostgresバージョンを変更します
高可用性を有効にする - インスタンスの高可用性を有効にします
レプリカを作成する - インスタンスのレプリカを作成します
インスタンスの一時停止と再開 - Postgresサーバーを停止しますが、ディスク上にデータを保持します
サービスを再起動する - PostgreSQL または基になるサーバー全体のいずれかを再起動します
認証情報を再生成する - インスタンスの認証情報を再生成します
フォーク¶
インスタンスをフォークして、既存のインスタンスから新しいインスタンスを作成できます。オプションで、フォークする時点を選択します。デフォルトでは、新しいインスタンスはソースインスタンスの現在の状態からフォークされます。フォークの詳細については、 Snowflake Postgresのポイントインタイムリカバリ をご覧ください。
変更¶
既存のSnowflake Postgresインスタンスに変更を加えるには、そのインスタンスに対する OWNERSHIP または OPERATE 権限が付与されているロールを使用する必要があります。
影響を最小限に抑え、接続文字列を変更することなく、その場でインスタンスのサイズを変更できます。インスタンスのサイズ変更中に、次のことができます。
COMPUTE_FAMILY を別のサイズに変更する。
ストレージの量を変更する。ストレージサイズの増減の両方がサポートされています。
Postgresバージョンを新しいメジャーバージョンにアップグレードする。
インスタンスの構成を変更するには、メンテナンスが必要です。詳細については、 Snowflake Postgresのメンテナンス をご参照ください。
変更するには、次を実行します。
ナビゲーションメニューで Postgres を選択します。
インスタンスを選択します。
右上の Manage メニューで Modify を選択します。
ドロップダウンメニューから、新しい COMPUTE_FAMILY やストレージサイズを選択します。Postgresバージョンの変更に関する詳細については Postgresのメジャーバージョンアップグレード をご参照ください。
Save ボタンを選択して、変更を確認します。
ALTER POSTGRES INSTANCE コマンドを実行して、Snowflake Postgresインスタンスの構成を変更します。
注釈
インスタンスへの変更は、非同期操作として適用されます。
操作のステータスを確認するには、 DESCRIBE POSTGRES INSTANCE コマンドを実行します。
ALTER POSTGRES INSTANCE [ IF EXISTS ] <name> SET [ NETWORK_POLICY = <policy_name> ] [ COMMENT = '<string_literal>' ] [ HIGH_AVAILABILITY = { TRUE | FALSE } ] [ COMPUTE_FAMILY = <compute_family> ] [ STORAGE_SIZE_GB = <storage_gb> ] [ POSTGRES_VERSION = { 16 | 17 } ]; [ MAINTENANCE_WINDOW_START = <hour_of_day> ] [ POSTGRES_SETTINGS = '<json_string>'] [ APPLY { IMMEDIATELY | ON '<timestamp>' } ] ALTER POSTGRES INSTANCE [ IF EXISTS ] <name> UNSET { COMMENT | POSTGRES_SETTINGS | NETWORK_POLICY | MAINTENANCE_WINDOW_START } [ , ... ]
NETWORK_POLICY = policy_nameインスタンスに使用する ネットワークポリシー を指定します。 ポリシーの変更が有効になるまでに最大2分かかる場合があります。
このパラメーターを指定するには、 NETWORK_POLICY オブジェクトに対する USAGE 権限が付与されている必要があります。
HIGH_AVAILABILITY = { TRUE | FALSE }インスタンスの Snowflake Postgresの高可用性 を有効にします。非同期操作として実行します。 DESCRIBE は、操作フィールドでの進行状況を追跡するために使用できます。HA の変更は、インスタンスが READY 状態にある場合にのみ開始でき、他の操作が実行中の場合は開始されません( HA の有効化および無効化を含む)
デフォルト:
FALSECOMPUTE_FAMILY = compute_family.STORAGE_SIZE_GB = storage_gb.POSTGRES_VERSION = 16 | 17
これらの操作は「アップグレード」操作と総称され、一緒に実行されます。
DESCRIBE POSTGRES INSTANCEは操作フィールドでの進行状況を追跡するために使用できます。アップグレード操作は、インスタンスが READY 状態にある場合にのみ開始でき、他の操作が実行中の場合は開始されません
インスタンスにメンテナンスウィンドウが定義されている場合、
APPLY IMMEDIATELYがメンテナンスウィンドウを上書きするように指定されている場合を除き、変更はメンテナンスウィンドウ期間まで有効になりません。POSTGRES_SETTINGS = 'json_string'インスタンスの Postgres設定 の変更を指定します。 次の構造を持つ JSON 形式の文字列で設定を指定します。
'{"component:name" = "value", ...}'一部のPostgres設定の変更を有効にするには、インスタンスの再起動が必要になる場合があります。ALTER POSTGRES INSTANCE ステートメントで
APPLY IMMEDIATELYを指定しない限り、これらの変更は有効になりません。 再起動が必要な設定のリストについては、 Postgres設定 のテーブルをご参照ください。MAINTENANCE_WINDOW_START = hour_or_dayメンテナンスウィンドウが開始できる可能性のある希望の時刻。これは、メンテナンスの開始が許可されている時刻を表す0から23までの整数である必要があります。0は UTC の午前0時を表します。メンテナンスウィンドウは指定された時間から始まる3時間です。既存のメンテナンスウィンドウを設定解除すると、進行中のすべての操作が完了次第すぐに適用されます。
APPLY IMMEDIATELYクラスターに定義済みのメンテナンスウィンドウがある場合、
APPLY IMMEDIATELYは、指定されたすべての操作が準備ができ次第適用されるように、メンテナンスウィンドウを上書きします。APPLY IMMEDIATELYは、COMPUTE_FAMILY、STORAGE_SIZE_GB、POSTGRES_VERSION、およびPOSTGRES_SETTINGSにのみ適用されます。 他のすべてのオプションでは無視されます。APPLY ON 'timestamp'クラスターに定義済みのメンテナンスウィンドウがある場合、
APPLY ONは、指定されたすべての操作が指定されたタイムスタンプで適用されるように、メンテナンスウィンドウを上書きします。APPLY IMMEDIATELYはPOSTGRES_SETTINGSでは指定できません。指定されたタイムスタンプは、将来の72時間を超えることはできず、次の形式にすることができます。
yyyy-MM-dd
yyyy-MM-dd HH:mm
yyyy-MM-dd HH:mm:ss
yyyy-MM-dd HH:mm zzz
Postgresインスタンスの変更の例
既存のインスタンスの COMPUTE_FAMILY を STANDARD_M に、ストレージサイズを 100GB に単一の操作で変更します。
ALTER POSTGRES INSTANCE my_instance
SET COMPUTE_FAMILY = 'STANDARD_M'
STORAGE_SIZE_GB = 100;
インスタンスのストレージサイズを縮小する予定の場合、アラートを減らし、すぐにサイズを大きくするために、現在のディスク使用量の1.4倍以上のサイズ変更が現在許可されていることに注意してください。
Postgresのメジャーバージョンのアップグレード¶
Snowflake Postgresでは、ダッシュボードからメジャーバージョンのアップグレードをスケジュールできます。この変更を行うには、インスタンスのサイズ変更と同じプロセスを使用します。 インスタンスを新しいメジャーバージョンにアップグレードするには、メンテナンスが必要です。メンテナンスに関する一般情報については、 Snowflake Postgresのメンテナンス をご参照ください。メジャーバージョンのアップグレードに関するより具体的な情報については、以下をご参照ください。
メジャーバージョンのアップグレードを開始するには、インスタンスに対する OWNERSHIP または OPERATE 権限が付与されたロールを使用する必要があります。
注釈
新しいメジャーバージョンにのみアップグレードできます。以前のメジャーバージョンにダウングレードすることはできません。
注釈
新しいインスタンスサイズやストレージサイズを同時に選択することで、メジャーバージョンのアップグレードとインスタンスのサイズ変更を組み合わせることができます。
ナビゲーションメニューで Postgres を選択します。
Snowflake Postgresインスタンスを選択します。
右上の Manage メニューで Modify を選択します。
新しいバージョンが利用可能な場合は、Postgresバージョンドロップダウンメニューから選択できます。
Save ボタンを選択して、変更を確認します。
POSTGRES_VERSION パラメーターを希望のバージョンに設定して、 ALTER POSTGRES INSTANCE コマンドを使用してメジャーバージョンのアップグレードを開始できます。
ALTER POSTGRES INSTANCE [IF EXISTS] <name>
SET POSTGRES_VERSION = { 16 | 17 }
POSTGRES_VERSION = { 16 | 17 }アップグレード先のPostgresバージョン。
例:既存のインスタンスを PostgreSQL 17にアップグレードする
ALTER POSTGRES INSTANCE my_instance
SET POSTGRES_VERSION = 17;
例:メジャーバージョンのアップグレードとストレージサイズの増加を組み合わせる
ALTER POSTGRES INSTANCE my_instance
SET POSTGRES_VERSION = 17
STORAGE_SIZE_GB = 100;
Postgresのメジャーバージョンのアップグレードは、他のインスタンス管理操作とは異なる方法で動作します。プロセスを開始すると、Snowflake Postgresは次のステップを実行します。
現在のインスタンスの「非表示」(ユーザーには表示されない)レプリカを作成します。
ソースインスタンスから非表示のレプリカに既存のデータを移行します(期間はデータサイズに比例します)。
メンテナンスウィンドウが到来したら、次を実行します。
書き込みを防ぐためにソースインスタンスをロックします。
非表示のレプリカをアップグレードします(期間は、データサイズではなく、データベース内の オブジェクト数 に依存します)。
アップグレードが完了したら、新しくアップグレードしたインスタンスにフェールオーバーします。
重要な注意点 :
メジャーバージョンの変更はアプリケーションの互換性に影響する可能性があります。アップグレードする前に、新しい PostgreSQL バージョンに対してアプリケーションをテストすることをお勧めします。
読み取りレプリカは、メジャーバージョンのアップグレードを実行すると自動的にアップグレードされますが、そのプライマリがアップグレードされ、新しいバックアップが作成された場合にのみアップグレードされます。それまで、レプリカは引き続き使用できますが、古い状態です。
メンテナンスウィンドウが設定されておらず、実行時間を指定していない場合は、新しいインスタンスに入力されて準備が整うとすぐにアップグレードが開始されます。
この操作により、数分以内のサービス中断が発生します。
アップグレードが失敗した場合、インスタンスは自動的に元のインスタンスに戻ります。
高可用性を有効にする¶
高可用性( HA )が有効になっている場合は、プライマリが使用できなくなった場合にプライマリを置き換える待機ホストがインスタンスに含まれます。 詳しくは Snowflake Postgresの高可用性 をご覧ください。
レプリカを作成する¶
ダッシュボードからインスタンスのレプリカを作成できます。レプリカは、ソースインスタンスと同期して保たれるソースインスタンスの読み取り専用コピーです。レプリカの作成と使用の詳細については、 Snowflake Postgres読み取りレプリカ をご覧ください。
インスタンスの一時停止と再開¶
インスタンスを一時停止すると、インスタンスが実行中の仮想マシンが非アクティブ化されますが、インスタンスを再開できるようにディスクイメージがストレージに保持されます。インスタンスの通常の請求は一時停止されますが、ストレージコストは引き続き発生します。既存の10日分のバックアップも保持されます。
再起動を保留して適用されている操作があった場合、それらはインスタンスの再開時に適用されます。
Snowflake Postgresインスタンスを一時停止または再開するには、インスタンスに対する OWNERSHIP または OPERATE 権限が付与されているロールを使用する必要があります。
Snowflake Postgresインスタンスを一時停止するには、 ALTER POSTGRES INSTANCE ... SUSPEND を実行します。
ALTER POSTGRES INSTANCE [ IF EXISTS ] <name> SUSPEND
これらの操作は非同期です。DESCRIBE コマンドを使用して、これらの操作のステータスを追跡できます。
例:my_instanceという名前のSnowflake Postgresインスタンスを一時停止する
ALTER POSTGRES INSTANCE my_instance SUSPEND;
一時停止したインスタンスはいつでも再開できます。インスタンスの再開にかかる時間は、インスタンスとデータセットのサイズによって異なります。インスタンスを再開すると、通常の請求とバックアップも再開されます。
Snowflake Postgresインスタンスを再開するには、 ALTER POSTGRES INSTANCE ... RESUME を実行します。
ALTER POSTGRES INSTANCE [ IF EXISTS ] <name> RESUMEこれらの操作は非同期です。DESCRIBE コマンドを使用して、これらの操作のステータスを追跡できます。
例:my_instanceという名前のSnowflake Postgresインスタンスを再開する
ALTER POSTGRES INSTANCE my_instance RESUME;
サービスを再起動する¶
必要に応じて、 PostgreSQL またはPostgresインスタンスを実行する基になるサーバーのいずれかを再起動できます。このタイプのインスタンス管理操作は、レプリカを作成したり、フェールオーバーを実行したりすることなく、その場でサーバーを再起動します。サービスの再起動についての詳細は、 Snowflake Postgresのメンテナンス をご覧ください。
認証情報を再生成する¶
認証情報を再生成すると、データベースインスタンスの新しい接続文字列が返され、既存の認証情報が置き換えられます。このトピックの詳細については、 Snowflake Postgresのロール をご覧ください。
カスタム構成パラメーター¶
Snowflake PostgresインスタンスのPostgres独自のサーバー設定の多くを変更できます。Snowflake Postgresのサーバー設定 で使用可能な構成パラメーターのリストを確認できます。
Snowflake PostgresインスタンスのPostgres設定を変更するには、そのインスタンスに対する OWNERSHIP または OPERATE 権限が付与されているロールを使用する必要があります。
変更するには、次を実行します。
ナビゲーションメニューで Postgres を選択します。
インスタンスを選択します。
ページ右側で、 Custom parameters の横にある編集アイコンを選択します。
リストから構成パラメーターを選択するか、検索ボックスを使用して特定のパラメーターを検索します。
構成パラメーターに新しい値を入力します。
パラメーターに新しい値を追加し終わったら、 Continue to review をクリックします。次に Submit をクリックして変更を確認します。
ALTER POSTGRES INSTANCE [IF EXISTS] <name>
SET POSTGRES_SETTINGS = '{JSON_string}'
[ APPLY IMMEDIATELY ];
POSTGRES_SETTINGS = 'json_string'インスタンスの Postgres設定 の変更を指定します。 次の構造を持つ JSON 形式の文字列で設定を指定します。
'{"component:name" = "value", ...}'一部のPostgres設定の変更を有効にするには、インスタンスの再起動が必要になる場合があります。ALTER POSTGRES INSTANCE ステートメントで
APPLY IMMEDIATELYを指定しない限り、これらの変更は有効になりません。 再起動が必要な設定のリストについては、 Postgres設定 のテーブルをご参照ください。
例:my_instanceという名前のSnowflake Postgresインスタンスのwork_mem構成パラメーターを 128MB に設定する
ALTER POSTGRES INSTANCE my_instance SET POSTGRES_SETTINGS = ( 'work_mem' = '128MB' );
インスタンスの状態¶
新しいインスタンスを作成する場合でも、既存のインスタンスを変更する場合でも、インスタンス管理操作はすべて完了するまでに時間がかかります。正確な時間は、データやスキーマのサイズ、インスタンスのビジー状態など、多くの要因に依存します。インスタンスの状態は、進行中の操作の進行状況に関する洞察を提供します。ダッシュボードに表示されるほか、 DESCRIBE POSTGRES INSTANCE コマンドを実行して確認することもできます。
考えられるインスタンスの状態を以下に示します。インスタンスの変更操作中、置換インスタンスは最初のテーブルにリストされたすべての状態を経由します。作成される新しいインスタンスは、リストされているすべての状態ではなく、一部の状態を経由します。次のテーブルは、通常の操作中に表示される可能性のある追加の状態を示しています。
作成、変更、フォーク中に表示される状態:
状態 |
起こっていること |
通常の所要時間 |
次の状態 |
|---|---|---|---|
作成中 |
新しい基になるサーバーが作成されています |
1~2分 |
復元中 |
復元中 |
最新のベースバックアップをサーバーに復元しています |
変数 |
開始中 |
開始中 |
インスタンス上でPostgresが開始され、ベースバックアップ中に蓄積された WAL が適用されています |
変数 |
再生中 |
再生中 |
前回のベースバックアップ以降の累積 WAL が再生されています |
変数 |
確定中 |
確定中 |
インスタンス構成の確定処理とサーバーの利用開始処理中です |
1~2分 |
準備完了 |
準備完了 |
新しいインスタンスはソースインスタンスと一致し、操作を続行する準備ができています。今後のメンテナンスウィンドウがスケジュールされている場合、インスタンスはその時間まで |
N/A |
N/A |
プラットフォーム上で表示されるその他のインスタンス状態:
状態 |
起こっていること |
通常の所要時間 |
次の状態 |
|---|---|---|---|
再起動中 |
基になるサーバーが再起動されています |
1~2分 |
準備完了 |
再開中 |
新しいサーバーが構築され、一時停止されたインスタンスが再開されています |
3~5分 |
準備完了 |
一時停止中 |
インスタンスは一時停止されています |
3~5分 |
一時停止済み |
一時停止済み |
インスタンスは現在一時停止されています |
再開まで |
再開中 |

