Snowflake Postgres-Lesereplikate¶
Übersicht¶
Snowflake Postgres unterstützt das Erstellen von Replikaten. Replikate sind schreibgeschützte Kopien einer führenden Instanz, die kontinuierlich mit Änderungen von dieser Instanz synchronisiert werden. Diese Synchronisierung erfolgt automatisch und für den Benutzenden transparent.
Replikate sind nützlich für die Leseskalierung und das Auslagern bestimmter Workloads, die sich auf die Produktion auswirken könnten (z. B. Berichts-Workloads). Replikate müssen die gleiche Speichergröße wie ihre führende Instanz haben, können aber eine andere Computegröße haben.
Replikate werden im gleichen Netzwerk wie ihre Leader-Instanz bereitgestellt und erben daher alle Netzwerkregeln für eingehenden und ausgehenden Datenverkehr von ihrer Leader-Instanz.
Postgres-Anmeldeinformationen werden zusammen mit allen anderen Daten in Replikaten kopiert und mit der führenden Instanz synchronisiert.
Erstellen eines Leserreplikats¶
Wählen Sie im Navigationsmenü die Option Postgres aus.
Wählen Sie die Instanz aus, von der Sie ein Replikat erstellen möchten, um die zugehörige Detailseite zu laden.
Wählen Sie oben rechts auf der Detailseite im Menü Manage die Option
Create replicaaus.Wählen Sie die Optionen für die Konfiguration des neuen Replikats aus.
Wählen Sie Save aus, um das Replikat zu erstellen.
Um eine Postgres-Instanz als Replikat einer Ursprungsinstanz zu erstellen, geben Sie die Klausel AS REPLICA OF im Befehl CREATE POSTGRES INSTANCE an:
CREATE POSTGRES INSTANCE <name>
AS REPLICA OF <orig_name>
[ COMPUTE_FAMILY = <compute_family> ]
[ POSTGRES_SETTINGS = '<json_string>' ]
[ COMMENT = '<string_literal>' ]
[ [ WITH ] TAG ( <tag_name> ... ) ]
Für die Befehlsparameter:
AS REPLICA OF orig_nameGibt die führende Instanz an, der die neue Replikatinstanz folgen soll.
COMPUTE_FAMILY = compute_familyGibt den Namen einer Instanzgröße aus den Snowflake Postgres-Instanzgrößen-Tabellen an.
Standard: Vom Ursprung kopiert.
POSTGRES_SETTINGS = 'json_string'Ermöglicht Ihnen optional das Festlegen von Postgres-Konfigurationsparametern für Ihre -Instanz im JSON-Format. Unter Snowflake Postgres-Servereinstellungen finden Sie eine Liste der verfügbaren Postgres-Parameter.
'{"component:name" = "value", ...}'Standard: Vom Ursprung kopiert.
COMMENT = 'string_literal'Gibt einen Kommentar für den Benutzer an.
Standard:
NULL
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 quotas.
Es wird eine Zeile mit den folgenden Spalten zurückgegeben:
status
host
CREATE REPLICA SQL-Beispiele
Erstellen Sie ein Replikat my_replica der Instanz my_origin_instance.
CREATE POSTGRES INSTANCE my_replica
AS REPLICA OF my_origin_instance;
Erstellen Sie ein Replikat my_replica der Instanz my_origin_instance mit einer anderen Computefamilie.
CREATE POSTGRES INSTANCE my_replica
AS REPLICA OF my_origin_instance
COMPUTE_FAMILY = STANDARD_M;
Wie lange die Erstellung eines Replikats benötigt, hängt von der Größe der ursprünglichen Instanz ab. Das Replikat zeigt bei der Erstellung den aktuellen Status an. Siehe die Liste der Instanzstatus, um Details zu den Status zu erhalten, die das Replikat beim Erstellen durchläuft.
Replikatverhalten und -einschränkungen¶
Standardmäßig können nur 10 Replikate Änderungen von einer führenden Instanz streamen. Damit zusätzliche Replikate streamen können, erhöhen Sie den Wert der Postgres-Einstellung
max_wal_senders(siehe Snowflake Postgres-Servereinstellungen).Führende Postgres-Instanzen können nicht gelöscht werden, solange sie Replikate haben. Alle Replikate müssen entfernt werden, bevor die führende Instanz gelöscht werden kann.
Postgres-Servereinstellungen, die auf eine führende Instanz angewendet werden, werden in alle Replikate kopiert.