ALTER POSTGRES INSTANCE

Ändert die Eigenschaften einer vorhandenen Snowflake Postgres-Instanz.

Siehe auch:

CREATE POSTGRES INSTANCE , DESCRIBE POSTGRES INSTANCE, DROP POSTGRES INSTANCE , SHOW POSTGRES INSTANCES

Syntax

ALTER POSTGRES INSTANCE [ IF EXISTS ] <name>
  RENAME TO <new_name>

ALTER POSTGRES INSTANCE [ IF EXISTS ] <name> SET
  [ NETWORK_POLICY = '<network_policy>' ]
  [ AUTHENTICATION_AUTHORITY = { POSTGRES | POSTGRES_OR_SNOWFLAKE } ]
  [ COMMENT = '<string_literal>' ]
  [ HIGH_AVAILABILITY = { TRUE | FALSE } ]
  [ COMPUTE_FAMILY = '<compute_family>' ]
  [ STORAGE_SIZE_GB = <storage_gb> ]
  [ STORAGE_INTEGRATION = '<storage_integration_name>' ]
  [ POSTGRES_VERSION = { 16 | 17 | 18 } ]
  [ 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 | STORAGE_INTEGRATION } [ , ... ]

ALTER POSTGRES INSTANCE [ IF EXISTS ] <name> SUSPEND

ALTER POSTGRES INSTANCE [ IF EXISTS ] <name> RESUME

ALTER POSTGRES INSTANCE [IF EXISTS] <name> RESET ACCESS
  FOR { 'snowflake_admin' | 'application' }

ALTER POSTGRES INSTANCE [ IF EXISTS ] <name> SET TAG <tag_name> =
  '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]

ALTER POSTGRES INSTANCE [ IF EXISTS ] <name> UNSET TAG <tag_name>
  [ , <tag_name> ... ]
Copy

Parameter

name

Gibt den Bezeichner für die zu ändernde Postgres-Instanz an.

Wenn der Bezeichner Leerzeichen oder Sonderzeichen enthält, muss die gesamte Zeichenfolge in doppelte Anführungszeichen gesetzt werden. Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß- und Kleinschreibung zu beachten.

Weitere Informationen dazu finden Sie unter Anforderungen an Bezeichner.

RENAME TO new_name

Ändert den Namen der Postgres-Instanz in den angegebenen neuen Namen. Der neue Bezeichner muss in dem Schema eindeutig sein.

Weitere Informationen zu Bezeichnern finden Sie unter Anforderungen an Bezeichner.

RESET ACCESS FOR { 'snowflake_admin' | 'application' }

Generiert die Anmeldeinformationen für die snowflake_admin- oder``application``-Rolle. Gibt eine Zeile mit der folgenden Spalte zurück:

  • password

Weitere Informationen dazu finden Sie unter Snowflake Postgres-Rollen.

SET ...

Legt eine oder mehrere angegebene Eigenschaften für die Postgres-Instanz fest:

NETWORK_POLICY = 'network_policy'

Gibt die Netzwerkrichtlinie an, die für die Instanz verwendet werden soll. Es kann bis zu 2 Minuten dauern, bis die Änderungen an der Richtlinie wirksam werden.

Um diesen Parameter anzugeben, müssen Sie über die USAGE-Berechtigung für das Netzwerkrichtlinienobjekt verfügen.

AUTHENTICATION_AUTHORITY = { POSTGRES | POSTGRES_OR_SNOWFLAKE }

Ändern Sie die Authentifizierungsmethode für die Instanz.POSTGRES gibt an, dass nur Postgres-Nutzungskennwörter verwendet werden können.POSTGRES_OR_SNOWFLAKE ermöglicht auch die Verwendung von kurzlebigen Kennwörtern für Zugriffstoken. Weitere Details dazu finden Sie unter Snowflake-Token-Authentifizierung für Snowflake Postgres.

COMMENT = 'string_literal'

Fügt einen vorhandenen Kommentar für die Postgres-Instanz hinzu oder überschreibt ihn.

HIGH_AVAILABILITY = { TRUE | FALSE }

Aktiviert oder deaktiviert :doc:` Hochverfügbarkeit</user-guide/snowflake-postgres/high-availability>` für die Instanz. Wird als asynchroner Vorgang ausgeführt. Führen Sie den DESCRIBEPOSTGRESINSTANCE-Befehl aus und überwachen Sie das Feld operations, um den Fortschritt zu verfolgen.

Eine Änderung der Hochverfügbarkeit kann nur initiiert werden, wenn sich die Instanz im READY-Status befindet und keine anderen Vorgänge ausgeführt werden.

Bemerkung

Burstable-Instanzgrößen (BURST_XS, BURST_S, BURST_M) unterstützen keine Hochverfügbarkeit. Um Hochverfügbarkeit (HA) zu aktivieren, müssen Sie zunächst zu einer STANDARD- oderHIGHMEM-Computefamilie wechseln.

COMPUTE_FAMILY = 'compute_family'

Gibt die neue Instanzgröße für die Postgres-Instanz an.

STORAGE_SIZE_GB = storage_gb

Gibt die neue Speichergröße in GB an. Es werden sowohl Erhöhungen als auch Verringerungen unterstützt.

Bemerkung

Wenn Sie die Speichergröße verringern, darf sie nicht zu nahe an der aktuellen Datenmenge der Instanz liegen. Die neue Größe muss mindestens das 1,4-fache der Festplattennutzung betragen, die derzeit von der Instanz verwendet wird. Auf diese Weise ist immer noch Platz, um weitere Daten hinzuzufügen, ohne dass eine automatische Speichererhöhung ausgelöst wird.

STORAGE_INTEGRATION = 'storage_integration_name'

Fügt eine Speicherintegration vom Typ``POSTGRES_EXTERNAL_STORAGE`` zu der Postgres-Instanz hinzu, sodass die pg_lake-Erweiterung auf Daten in einem externen Objektspeicher zugreifen kann. Die vollständige Einrichtungsprozedur finden Sie unter Konfigurieren von S3-Speicher für „pg_lake“.

POSTGRES_VERSION = { 16 | 17 | 18 }

Gibt die Postgres-Hauptversion an, auf die aktualisiert werden soll. Sie können nur auf eine neuere Version aktualisieren; Downgrades werden nicht unterstützt.

MAINTENANCE_WINDOW_START = hour_of_day

Gibt die Stunde des Tages an (0-23,UTC), zu der ein Wartungsfenster beginnen kann. Wartungsfenster dauern drei Stunden und beginnen ab der angegebenen Stunde.

POSTGRES_SETTINGS = 'json_string'

Gibt Änderungen an den Postgres-Servereinstellungen für die Instanz imJSON-Format an:

'{"component:name" = "value", ...}'
Copy

Einige Einstellungen erfordern einen Neustart der Instanz, um wirksam zu werden. Diese Änderungen werden nur angewendet, wenn Sie APPLY IMMEDIATELY angeben.

APPLY IMMEDIATELY

Setzt jedes definierte Wartungsfenster außer Kraft und wendet die angegebenen Vorgänge an, sobald sie bereit sind. Gilt für COMPUTE_FAMILY ,``STORAGE_SIZE_GB``,``POSTGRES_VERSION`` und``POSTGRES_SETTINGS``.

APPLY ON 'timestamp'

Setzt jedes definierte Wartungsfenster außer Kraft und wendet die angegebenen Operationen zum angegebenen Zeitstempel an. Der Zeitstempel darf nicht mehr als 72 Stunden in der Zukunft liegen.

Unterstützte Zeitstempelformate:

  • yyyy-MM-dd

  • yyyy-MM-dd HH:mm

  • yyyy-MM-dd HH:mm:ss

  • yyyy-MM-dd HH:mm zzz

UNSET ...

Hebt eine oder mehrere angegebene Eigenschaften für die Postgres-Instanz auf und setzt sie auf ihre Standardwerte zurück:

  • COMMENT

  • POSTGRES_SETTINGS

  • NETWORK_POLICY

  • MAINTENANCE_WINDOW_START: Durch das Aufheben werden alle laufenden Vorgänge angewendet, sobald sie abgeschlossen sind.

  • STORAGE_INTEGRATION: Entfernt die Speicherintegration aus der Instanz und deaktiviert den Zugriff von pg_lake auf den externen Speicher.

Um mehrere Eigenschaften oder Parameter mit einer einzigen ALTER-Anweisung zurückzusetzen, trennen Sie jede Eigenschaft oder jeden Parameter durch ein Komma.

Wenn Sie eine Eigenschaft oder einen Parameter zurücksetzen, geben Sie nur den Namen der Eigenschaft oder des Parameters an (es sei denn, die obige Syntax weist darauf hin, dass Sie den Wert angeben sollten). Die Angabe des Wertes gibt einen Fehler zurück.

SUSPEND

Setzt die Postgres-Instanz aus. Die virtuelle Maschine ist deaktiviert, während das Festplattenimage im Speicher verbleibt. Die normale Abrechnung wird ausgesetzt, aber es fallen weiterhin Speicherkosten an. Vorhandene Backups bleiben erhalten.

RESUME

Setzt eine ausgesetzte Postgres-Instanz fort. Vorgänge, die auf einen Neustart warten, werden beim Fortsetzen der Instanz angewendet.

TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]

Gibt den Namen des Tags und den Wert der Tag-Zeichenfolge an.

Der Tag-Wert ist immer eine Zeichenfolge, die maximale 256 Zeichen lang sein kann.

Weitere Informationen zur Angabe von Tags in einer Anweisung finden Sie unter Tag-Kontingente.

Anforderungen an die Zugriffssteuerung

Eine Rolle, die zur Ausführung dieser Operation verwendet wird, muss mindestens die folgenden Berechtigungen haben:

Berechtigung

Objekt

Anmerkungen

OWNERSHIP oder OPERATE

Postgres-Instanz

Erforderlich für das Ändern von Instanzeigenschaften.

USAGE

Netzwerkrichtlinie

Nur erforderlich, wenn eine NETWORK_POLICY angegeben wird.

USAGE

Speicherintegration

Nur erforderlich, wenn eine STORAGE_INTEGRATION angegeben wird.

Eine Anleitung zum Erstellen einer kundenspezifischen Rolle mit einer bestimmten Gruppe von Berechtigungen finden Sie unter Erstellen von kundenspezifischen Rollen.

Allgemeine Informationen zu Rollen und Berechtigungen zur Durchführung von SQL-Aktionen auf sicherungsfähigen Objekten finden Sie unter Übersicht zur Zugriffssteuerung.

Nutzungshinweise

  • Änderungen an COMPUTE_FAMILY,``STORAGE_SIZE_GB`` und``POSTGRES_VERSION`` werden zusammenfassend als „Upgrade“-Vorgänge bezeichnet und können gemeinsam durchgeführt werden. Führen Sie den DESCRIBEPOSTGRESINSTANCE-Befehl aus und überwachen Sie das Feld operations, um den Fortschritt zu verfolgen.

  • Ein Upgrade-Vorgang kann nur initiiert werden, wenn sich die Instanz im READY-Status befindet und keine anderen Vorgänge ausgeführt werden.

  • Wenn eine Instanz ein definiertes Wartungsfenster hat, werden die Änderungen erst wirksam, wenn der Zeitraum des Wartungsfensters beginnt, es sei denn,``APPLY IMMEDIATELY`` ist angegeben. Wartungsfenster steuern, wann Änderungen angewendet werden, und nicht, ob die Instanz ausgeführt wird. Weitere Einzelheiten zu Wartungsvorgängen finden Sie unter:doc:/user-guide/snowflake-postgres/managing-instances.

  • Eine kurze Serviceunterbrechung ist erforderlich, um Vorgänge zur Instanzverwaltung auszuführen. Stellen Sie sicher, dass Ihre Anwendungen sich automatisch wieder mit der Datenbank verbinden können.

  • SUSPEND undRESUME sind sofortige Vorgänge zum Stoppen und Starten der Instanzabrechnung. Sie unterscheiden sich von Wartungsfenstern, die festlegen, wann Konfigurationsänderungen (z. B. Upgrades oder HA-Aktivierung) wirksam werden.

  • Die Verbindungszeichenfolge für eine Instanz bleibt über alle Instanzverwaltungsoperationen hinweg gleich, es sei denn, Sie generieren die Anmeldeinformationen explizit neu.

  • Metadaten:

    Achtung

    Kunden müssen sicherstellen, dass bei der Nutzung des Snowflake-Dienstes keine personenbezogenen Daten (außer für ein Objekt „User“), sensible Daten, exportkontrollierte Daten oder andere regulierte Daten als Metadaten eingegeben werden. Weitere Informationen dazu finden Sie unter Metadatenfelder in Snowflake.

Beispiele

Ändern der Computefamilie und der Speichergröße für eine Postgres-Instanz:

ALTER POSTGRES INSTANCE my_postgres
  SET COMPUTE_FAMILY = 'STANDARD_M'
      STORAGE_SIZE_GB = 100;
Copy

Überwachen des Fortschritts des Vorgangs mit DESCRIBE:

DESCRIBE POSTGRES INSTANCE my_postgres
  ->> SELECT "property", "value"
      FROM $1
      WHERE "property" IN
        ('name', 'state', 'operations', 'compute_family',
          'storage_size_gb');

-- Repeat until state shows 'READY'
Copy

Aktivieren der Hochverfügbarkeit für eine Instanz:

-- Check current HA status
DESCRIBE POSTGRES INSTANCE my_postgres
  ->> SELECT "property", "value"
      FROM $1
      WHERE "property" IN ('name', 'high_availability',
        'state');

-- Enable HA (asynchronous operation)
ALTER POSTGRES INSTANCE my_postgres
  SET HIGH_AVAILABILITY = TRUE;

-- Monitor until operation completes
DESCRIBE POSTGRES INSTANCE my_postgres
  ->> SELECT "property", "value"
      FROM $1
      WHERE "property" IN ('name', 'high_availability',
        'state');
Copy

Upgrade auf Postgres 18:

-- Check current Postgres version using flow operator
SHOW POSTGRES INSTANCES
  ->> SELECT "name", "postgres_version", "state"
      FROM $1
      WHERE "name" = 'my_postgres';

-- Upgrade to version 18
ALTER POSTGRES INSTANCE my_postgres
  SET POSTGRES_VERSION = 18;
Copy

Sofortiges Anwenden der Änderungen und Überschreiben des Wartungsfensters:

ALTER POSTGRES INSTANCE my_postgres
  SET COMPUTE_FAMILY = 'STANDARD_L'
  APPLY IMMEDIATELY;
Copy

Anhalten einer Postgres-Instanz:

-- Check state before suspending
DESCRIBE POSTGRES INSTANCE my_postgres
  ->> SELECT "property", "value"
      FROM $1
      WHERE "property" IN ('name', 'state');

-- Suspend the instance
ALTER POSTGRES INSTANCE my_postgres SUSPEND;

-- Verify suspended state
DESCRIBE POSTGRES INSTANCE my_postgres
  ->> SELECT "property", "value"
      FROM $1
      WHERE "property" IN ('name', 'state');
Copy

Fortsetzen einer ausgesetzten Instanz:

ALTER POSTGRES INSTANCE my_postgres RESUME;
Copy

Umbenennen einer Postgres-Instanz:

ALTER POSTGRES INSTANCE my_postgres
  RENAME TO prod_postgres;
Copy

Bemerkung

Das Umbenennen einer Instanz ändert ihren Bezeichner in Snowflake, aber nicht den Hostnamen der Verbindung. Der Hostname bleibt derselbe, sodass bestehende Verbindungen und Anwendungen weiterhin ohne Änderungen funktionieren.