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> ... ]
Parameter¶
nameGibt 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_gbGibt 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_dayGibt 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", ...}'Einige Einstellungen erfordern einen Neustart der Instanz, um wirksam zu werden. Diese Änderungen werden nur angewendet, wenn Sie
APPLY IMMEDIATELYangeben.APPLY IMMEDIATELYSetzt 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-ddyyyy-MM-dd HH:mmyyyy-MM-dd HH:mm:ssyyyy-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:
COMMENTPOSTGRES_SETTINGSNETWORK_POLICYMAINTENANCE_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.
SUSPENDSetzt 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.
RESUMESetzt 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 Feldoperations, 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;
Ü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'
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');
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;
Sofortiges Anwenden der Änderungen und Überschreiben des Wartungsfensters:
ALTER POSTGRES INSTANCE my_postgres
SET COMPUTE_FAMILY = 'STANDARD_L'
APPLY IMMEDIATELY;
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');
Fortsetzen einer ausgesetzten Instanz:
ALTER POSTGRES INSTANCE my_postgres RESUME;
Umbenennen einer Postgres-Instanz:
ALTER POSTGRES INSTANCE my_postgres
RENAME TO prod_postgres;
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.
