CREATE FAILOVER GROUP

Erstellt im System eine neue Failover-Gruppe der angegebenen Objekte.

Weitere Details dazu finden Sie unter Einführung in Replikation und Failover über mehrere Konten.

Dieser Befehl kann für folgende Aufgaben verwendet werden:

  • Erstellen einer Failover-Gruppe im Quellkonto, um Replikation und Failover von bestimmten Objekten in ein Zielkonto derselben Organisation zu aktivieren.

  • Erstellen einer sekundären Failover-Gruppe in einem Zielkonto als Replikat der primären Failover-Gruppe im Quellkonto derselben Organisation.

Siehe auch:

ALTER FAILOVER GROUP, DROP FAILOVER GROUP, SHOW FAILOVER GROUPS

Syntax

CREATE FAILOVER GROUP [ IF NOT EXISTS ] <name>
    OBJECT_TYPES = <object_type> [ , <object_type> , ... ]
    [ ALLOWED_DATABASES = <db_name> [ , <db_name> , ... ] ]
    [ ALLOWED_SHARES = <share_name> [ , <share_name> , ... ] ]
    [ ALLOWED_INTEGRATION_TYPES = <integration_type_name> [ , <integration_type_name> , ... ] ]
    ALLOWED_ACCOUNTS = <org_name>.<target_account_name> [ , <org_name>.<target_account_name> ,  ... ]
    [ IGNORE EDITION CHECK ]
    [ REPLICATION_SCHEDULE = '{ <num> MINUTE | USING CRON <expr> <time_zone> }' ]
Copy

Sekundäre Failover-Gruppe

CREATE FAILOVER GROUP [ IF NOT EXISTS ] <secondary_name>
    AS REPLICA OF <org_name>.<source_account_name>.<name>
Copy

Parameter

name

Gibt den Bezeichner der Failover-Gruppe an. Der Bezeichner muss mit einem alphabetischen Zeichen beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B. "My object"). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.

Weitere Details dazu finden Sie unter Anforderungen an Bezeichner.

OBJECT_TYPES = object_type [ , object_type , ... ]

Typ(en) von Objekten, für die Sie Replikation und Failover vom Quellkonto zum Zielkonto aktivieren.

Die folgenden Objekttypen werden unterstützt:

ACCOUNT PARAMETERS

Alle Parameter auf Kontoebene. Dazu gehören Kontoparameter und Parameter, die für Ihr Konto eingestellt werden können.

DATABASES

Fügen Sie Datenbankobjekte zur Liste der Objekttypen hinzu. Wenn Datenbankobjekte in der Liste der angegebenen Objekttypen enthalten sind, muss der Parameter ALLOWED_DATABASES gesetzt werden.

INTEGRATIONS

Derzeit werden nur Sicherheitsintegrationen, API-Integrationen, Speicherintegrationen, Integrationen für den externen Zugriff 1 sowie bestimmte Typen von Benachrichtigungsintegrationen unterstützt. Weitere Details dazu finden Sie unter Integrationsreplikation.

Wenn Integrationsobjekte in der Liste der angegebenen Objekttypen enthalten sind, muss der Parameter ALLOWED_INTEGRATION_TYPES gesetzt werden.

NETWORK POLICIES

Alle Netzwerkrichtlinien im Quellkonto.

RESOURCE MONITORS

Alle Ressourcenmonitore im Quellkonto.

ROLES

Alle Rollen im Quellkonto. Das Replizieren von Rollen schließt implizit alle Berechtigungen für Objekttypen ein, die in der Replikationsgruppe enthalten sind. Wenn beispielsweise ROLES der einzige Objekttyp ist, der repliziert wird, werden nur Rollenhierarchien (d. h. Rollen, die anderen Rollen zugewiesen werden) in Zielkonten repliziert. Wenn der Objekttyp USERS ebenfalls enthalten ist, werden auch die Rollenzuweisungen an die Benutzer repliziert.

SHARES

Fügen Sie Freigabeobjekte zur Liste der Objekttypen hinzu. Wenn Freigabeobjekte in der Liste der angegebenen Objekttypen enthalten sind, muss der Parameter ALLOWED_SHARES gesetzt werden.

USERS

Alle Benutzer des Quellkontos.

WAREHOUSES

Alle Warehouses des Quellkontos.

1

Das Feature zur Integration des externen Zugriffs befindet sich derzeit in der Vorschau. Dieses Feature ist für Konten auf AWS und Azure mit Ausnahme der Regionen für Regierungsbehörden verfügbar.

Um die Liste der replizierten Objekttypen für ein bestimmtes Zielkonto zu ändern, können Sie mit ALTER FAILOVER GROUP die Liste der Objekttypen zurücksetzen.

ALLOWED_DATABASES = db_name [ , db_name , ... ]

Gibt die Datenbank oder die Liste der Datenbanken an, für die Sie Replikation und Failover vom Quellkonto zum Zielkonto aktivieren. Damit Sie diesen Parameter einstellen können, muss die OBJECT_TYPES-Liste DATABASES enthalten.

db_name

Gibt den Bezeichner der Datenbank an.

ALLOWED_SHARES = share_name [ , share_name , ... ]

Gibt die Freigabe oder die Liste der Freigaben an, für die Sie Replikation und Failover vom Quellkonto zum Zielkonto aktivieren. Damit Sie diesen Parameter einstellen können, muss die OBJECT_TYPES-Liste SHARES enthalten.

share_name

Gibt den Bezeichner der Freigabe an.

ALLOWED_INTEGRATION_TYPES = integration_type_name [ , integration_type_name , ... ]

Typ(en) von Integrationen, für die Sie Replikation und Failover vom Quellkonto zum Zielkonto aktivieren.

Die Liste OBJECT_TYPES muss INTEGRATIONS enthalten, damit dieser Parameter gesetzt werden kann.

Die folgenden Integrationstypen werden unterstützt:

SECURITY INTEGRATIONS

Gibt die Sicherheitsintegrationen an.

Die Liste OBJECT_TYPES muss ROLES enthalten, damit dieser Parameter gesetzt werden kann.

API INTEGRATIONS

Gibt die API-Integrationen an.

Für die Replikation von API-Integrationen sind zusätzliche Einstellungen erforderlich, nachdem die API-Integration in das Zielkonto repliziert wurde. Weitere Informationen dazu finden Sie unter Aktualisieren des Remotedienstes für API-Integrationen.

STORAGE INTEGRATIONS

Gibt Speicherintegrationen an.

EXTERNAL ACCESS INTEGRATIONS

Gibt Integrationen für den externen Zugriff an.

Weitere Informationen dazu finden Sie unter Replikation von gespeicherten Prozeduren und benutzerdefinierten Funktionen (UDFs).

NOTIFICATION INTEGRATIONS

Gibt die Benachrichtigungsintegrationen an.

Es werden nur bestimmte Typen von Benachrichtigungsintegrationen repliziert. Weitere Details dazu finden Sie unter Integrationsreplikation.

ALLOWED_ACCOUNTS = org_name.target_account_name [ , org_name.target_account_name , ... ]

Gibt das Zielkonto oder die Liste der Zielkonten an, für die Replikation und Failover der angegebenen Objekte vom Quellkonto aus aktiviert werden. Sekundäre Failover-Gruppen in den Zielkonten dieser Liste können im Falle eines Failovers zur primären Failover-Gruppe heraufgestuft werden.

org_name

Name Ihrer Snowflake-Organisation.

target_account_name

Zielkonto, für das Sie die Replikation der angegebenen Objekte aktivieren.

IGNORE EDITION CHECK

Ermöglicht das Replizieren von Objekten auf Konten in folgendem Szenario:

Die primäre Failover-Gruppe befindet sich in einem Business Critical-Konto (oder höher), und es besteht eine unterzeichnete Geschäftspartner-Vereinbarung zur Speicherung von PHI-Daten in dem Konto gemäß HIPAA- und HITRUST-Vorschriften. Allerdings besteht für eines oder mehrere der zur Replikation genehmigten Konten keine solche Vereinbarung, unabhängig davon, ob es sich um Business Critical-Konten (oder höhere) handelt.

Ein solches Szenario ist standardmäßig nicht zulässig.

REPLICATION_SCHEDULE ...

Gibt den Zeitplan für das Aktualisieren der sekundären Failover-Gruppen an:

  • USING CRON expr time_zone

    Gibt einen Cron-Ausdruck und eine Zeitzone für das Aktualisieren der sekundären Gruppe an. Unterstützt eine Teilmenge der Standardsyntax des Cron-Dienstprogramms.

    Eine Liste der Zeitzonen finden Sie unter List of tz database time zones (Liste der Zeitzonen aus der IANA-Zeitzonen-Datenbank) (Wikipedia).

    Der Cron-Ausdruck besteht aus folgenden Feldern:

    # __________ minute (0-59)
    # | ________ hour (0-23)
    # | | ______ day of month (1-31, or L)
    # | | | ____ month (1-12, JAN-DEC)
    # | | | | __ day of week (0-6, SUN-SAT, or L)
    # | | | | |
    # | | | | |
      * * * * *
    

    Folgende Sonderzeichen werden unterstützt:

    *

    Platzhalter. Gibt jedes vorkommende Feld an.

    L

    Steht für „last“ (letzte). Bei Verwendung im Feld Wochentag können Sie Konstrukte wie „den letzten Freitag“ („5L“) eines bestimmten Monats angeben. Im Feld Tag des Monats wird der letzte Tag des Monats angegeben.

    /n

    Gibt die n-te Instanz einer bestimmten Zeiteinheit an. Jeder Zeitanteil wird unabhängig berechnet. Wenn beispielsweise im Monatsfeld 4/3 angegeben ist, ist die Aktualisierung für April, Juli und Oktober geplant (d. h. alle 3 Monate, beginnend mit dem 4. Monat des Jahres). In den Folgejahren wird derselbe Zeitplan beibehalten. Das heißt, die Aktualisierung ist nicht für eine Ausführung im Januar (3 Monate nach der Oktober-Ausführung) geplant.

    Bemerkung

    • Der Cron-Ausdruck wird derzeit nur für die angegebene Zeitzone ausgewertet. Durch Ändern des TIMEZONE-Parameterwerts für das Konto (oder Festlegen des Werts auf Benutzer- oder Sitzungsebene) wird die Zeitzone für das Aktualisieren nicht geändert.

    • Der Cron-Ausdruck definiert alle gültigen Ausführungszeiten für das Aktualisieren. Snowflake versucht, die sekundären Gruppen auf Basis dieses Zeitplans zu aktualisieren. Eine gültige Laufzeit wird jedoch übersprungen, wenn eine vorherige Laufzeit nicht vor dem Start der nächsten gültigen Laufzeit abgeschlossen wurde.

    • Wenn sowohl ein bestimmter Tag des Monats als auch ein bestimmter Wochentag im Cron-Ausdruck enthalten sind, wird die Aktualisierung an Tagen geplant, die entweder dem Tag des Monats oder dem Wochentag entsprechen. Beispielsweise plant SCHEDULE = 'USING CRON 0 0 10-20 * TUE,THU UTC' eine Aktualisierung um 0:00 Uhr an jedem 10. bis 20. Tag des Monats und auch an jedem Dienstag oder Donnerstag außerhalb dieser Tage.

  • num MINUTE

    Gibt ein Intervall (in Minuten) der Wartezeit zwischen den Aktualisierungen an. Akzeptiert nur positive ganze Zahlen.

    Unterstützt auch die Syntax num M.

    Um Mehrdeutigkeiten zu vermeiden, wird in folgenden Situationen eine Basisintervallzeit festgelegt:

    • Das Objekt wird erstellt (mit CREATE <Objekt>) oder

    • Ein anderes Intervall wird festgelegt (mit ALTER <Objekt> … SET REPLICATION_SCHEDULE)

    Die Basisintervallzeit startet den Intervallzähler ab der aktuellen Uhrzeit. Wenn beispielsweise ein INTERVAL-Wert von 10 festgelegt ist und die geplante Aktualisierung um 9:03 Uhr aktiviert wird, wird die Aktualisierung um 9:13 Uhr, 9:23 Uhr usw. ausgeführt. Beachten Sie, dass wir uns nach besten Kräften bemühen, absolute Präzision sicherzustellen, aber nur garantieren, dass Aktualisierungen nicht vor ihrem festgelegten Intervall ausgeführt werden (im aktuellen Beispiel könnte es sein, dass die Aktualisierung erst 9:14 Uhr ausgeführt wird, aber definitiv nicht 9:12 Uhr).

    Bemerkung

    Der maximal unterstützte Wert ist 11520 (8 Tage). Wenn der Replikationsplan einen größeren Wert num MINUTE hat, wird die Aktualisierungsoperation nie ausgeführt.

Parameter der sekundären Failover-Gruppe

secondary_name

Gibt den Bezeichner der sekundären Failover-Gruppe an. Der Bezeichner muss mit einem alphabetischen Zeichen beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B. "My object"). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten. Weitere Details dazu finden Sie unter Anforderungen an Bezeichner.

Die Bezeichner für die sekundäre Failover-Gruppe (secondary_name) und die primäre Failover-Gruppe (name) können identisch sein, müssen es aber nicht.

AS REPLICA OF org_name.source_account_name.name

Gibt den Bezeichner der primären Failover-Gruppe an, aus der eine sekundäre Failover-Gruppe erstellt werden soll.

org_name

Name Ihrer Snowflake-Organisation.

source_account_name

Quellkonto, von dem aus Sie Replikation und Failover der angegebenen Objekte aktivieren.

name

Bezeichner der primären Failover-Gruppe im Quellkonto.

Anforderungen an die Zugriffssteuerung

Eine Rolle, die zur Ausführung dieses SQL-Befehls verwendet wird, muss mindestens die folgenden Berechtigungen haben:

Berechtigung

Objekt

Anmerkungen

CREATE FAILOVER GROUP

Konto

Only the ACCOUNTADMIN role has this privilege by default. The privilege can be granted to additional roles as needed.

MONITOR

Datenbank

Um eine Datenbank zu einer Failover-Gruppe hinzuzufügen, muss die aktive Rolle über die MONITOR-Berechtigung für die Datenbank verfügen.

OWNERSHIP

Freigabe

Um eine Freigabe zu einer Failover-Gruppe hinzuzufügen, muss die aktive Rolle über die OWNERSHIP-Berechtigung für die Freigabe verfügen.

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

  • Bezeichner für Failover-Gruppen und Replikationsgruppen in einem Konto müssen eindeutig sein.

  • Anders als Datenbanken oder Freigaben müssen sich Objekte in der gleichen Failover-Gruppe befinden.

  • Eine Datenbank kann nur zu einer einzigen Failover-Gruppe hinzugefügt werden.

  • Eingehende Freigaben (Freigaben von Anbietern) können nicht zu einer Replikations- oder Failover-Gruppe hinzugefügt werden.

  • Um die Menge der Konten Ihrer Organisation abzurufen, die für die Replikation aktiviert sind, verwenden Sie den Befehl SHOW REPLICATION ACCOUNTS.

  • Zum Abrufen der Liste der Failover-Gruppen Ihrer Organisation verwenden Sie SHOW FAILOVER GROUPS.

  • Wenn Sie Kontoobjekte (z. B. Benutzer oder Rollen) in einem Zielkonto haben, die Sie während der Replikation nicht löschen möchten, können Sie mit der Systemfunktion SYSTEM$LINK_ACCOUNT_OBJECTS_BY_NAME eine globale ID auf Objekte anwenden, die auf andere Weise als durch Replikation erstellt wurden. Weitere Informationen dazu finden Sie unter Globale IDs auf Objekte anwenden, die von Skripten in Zielkonten erstellt wurden, bevor Sie eine Failover-Gruppe erstellen.

  • Hinweis zu Metadaten:

    Achtung

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

  • Bei einem Konto, das neu auf die Business Critical Edition (oder höher) aktualisiert wurde, kann es bis zu 12 Stunden dauern, bis die Failover-Funktionen zur Verfügung stehen.

Beispiele

Von Quellkonto ausführen

Erstellen Sie eine Failover-Gruppe mit dem Namen myfg im Quellkonto, und aktivieren Sie die Replikation von Benutzern, Rollen, Warehouses, Ressourcenmonitoren, der Datenbank db1 und der Freigabe s1 sowie das Failover vom Quellkonto zum Konto myaccount2:

CREATE FAILOVER GROUP myfg
    OBJECT_TYPES = USERS, ROLES, WAREHOUSES, RESOURCE MONITORS, DATABASES, SHARES, INTEGRATIONS, NETWORK POLICIES
    ALLOWED_DATABASES = db1
    ALLOWED_SHARES = s1
    ALLOWED_INTEGRATION_TYPES = SECURITY INTEGRATIONS
    ALLOWED_ACCOUNTS = myorg.myaccount2
    REPLICATION_SCHEDULE = '10 MINUTE';
Copy

Von Zielkonto ausführen

Erstellen Sie eine Failover-Gruppe im Zielkonto als Replikat der Failover-Gruppe myfg im Quellkonto:

CREATE FAILOVER GROUP myfg
    AS REPLICA OF myorg.myaccount1.myfg;
Copy