Einführung in die Datenbankreplikation über mehrere Konten

Mit dieser Funktion können Sie Datenbanken zwischen Snowflake-Konten (innerhalb derselben Organisation) replizieren und die Datenbankobjekte und gespeicherten Daten synchronisieren. Die Datenbankreplikation wird über verschiedene Regionen und Cloudplattformen hinweg unterstützt.

Unter diesem Thema:

Was ist eine Primärdatenbank?

Die Replikation kann für jede vorhandene permanente oder transiente Datenbank aktiviert werden. Durch das Aktivieren der Replikation wird die Datenbank als Primärdatenbank gekennzeichnet. In einem Konto können beliebig viele Datenbanken als Primärdatenbanken festgelegt werden. Ebenso kann eine Primärdatenbank auf eine beliebige Anzahl von Konten in Ihrer Organisation repliziert werden. Dies beinhaltet das Erstellen einer Sekundärdatenbank als Replikat einer angegebenen Primärdatenbank in jedem Zielkonto. Diese Konten befinden sich normalerweise in anderen Regionen auf derselben oder einer anderen Cloudplattform.

Alle DML/DDL-Operationen werden auf der Primärdatenbank ausgeführt. Jede schreibgeschützte, sekundäre Datenbank kann regelmäßig mit einem Snapshot der primären Datenbank aktualisiert werden. Dabei werden alle Daten sowie DDL-Operationen für Datenbankobjekte (d. h. Schemas, Tabellen, Ansichten usw.) repliziert.

Übersicht zur Replikation

Dieser Abschnitt bietet eine allgemeine Übersicht zu Objekten und Einstellungen, die für die Replikation verfügbar sind.

Replizierte Datenbankobjekte

Wenn eine Primärdatenbank repliziert wird, wird ein Snapshot der enthaltenen Datenbankobjekte und Daten in die Sekundärdatenbank übertragen. Einige Datenbankobjekte werden jedoch nicht repliziert. Die folgende Tabelle gibt an, welche Datenbankobjekte in eine Sekundärdatenbank repliziert werden.

Spezifische Informationen zur Verwendung dieser Objekte finden Sie unter Hinweise zur Datenbankreplikation.

Objekt

Typ oder Funktion

Repliziert

Anmerkungen

Tabellen

Permanente Tabellen

Transiente Tabellen

Temporäre Tabellen

Automatic Clustering von Clustertabellen

Externe Tabellen

Das Erstellen oder Aktualisieren einer sekundären Datenbank wird blockiert, wenn in der primären Datenbank eine externe Tabelle vorhanden ist. . Für eine zukünftige Version der Datenbankreplikation geplant.

Tabelleneinschränkungen

Außer wenn ein Fremdschlüssel in der Datenbank auf einen Primär- oder eindeutigen Schlüssel in einer anderen Datenbank verweist. .

Sequenzen

Ansichten

Ansichten

Wenn eine Ansicht auf irgendein Objekt in einer anderen Datenbank verweist (z. B. Tabellenspalten, andere Ansichten, UDFs oder Stagingbereiche), . müssen beide Datenbanken repliziert werden.

Materialisierte Ansichten

Dateiformate

Stagingbereiche

Stagingbereiche

Geplant für eine zukünftige Version der Datenbankreplikation.

Temporäre Stagingbereiche

Pipes

Geplant für eine zukünftige Version der Datenbankreplikation.

Gespeicherte Prozeduren

Streams

Geplant für eine zukünftige Version der Datenbankreplikation.

Aufgaben

Geplant für eine zukünftige Version der Datenbankreplikation.

Benutzerdefinierte Funktionen (UDF)

Maskierungsrichtlinien

Die Replikationsoperation wird blockiert, wenn einer der folgenden Anwendungsfälle zutrifft: . Die Primärdatenbank befindet sich in einem Enterprise-Konto (oder höher) und enthält eine Maskierungsrichtlinie, aber eines oder mehrere der für die Replikation genehmigten Konten befinden sich in niedrigeren Editionen. . Eine in der Primärdatenbank enthaltene Maskierungsrichtlinie wird auf Spalten einer Tabelle oder Ansicht angewendet, die sich in einer anderen Datenbank befindet, oder umgekehrt.

Andere Objekte in einem Konto

Derzeit wird die Replikation nur für Datenbanken unterstützt. Andere Objekttypen in einem Konto können nicht repliziert werden. Die Liste umfasst:

  • Benutzer

  • Rollen

  • Warehouses

  • Ressourcenmonitore

  • Freigaben

Zugriffssteuerung

Berechtigungen, die für Datenbankobjekte erteilt wurden, werden nicht in eine sekundäre Datenbank repliziert.

Parameter

Kontoparameter werden nicht repliziert.

Objektparameter werden nicht repliziert bis auf folgende Ausnahme:

Parameter

Objekte

DATA_RETENTION_TIME_IN_DAYS

Schema, Tabelle

Datenbankreplikation und -verschlüsselung

Wenn eine Datenbank auf ein anderes Konto repliziert wird (sowohl während der erstmalige Replikation als auch später, wenn eine sekundäre Datenbank aktualisiert wird), verschlüsselt Snowflake die Datenbankdateien (d. h. die Metadaten und Datasets des Datenbankobjekts), die vom Quellkonto zum Zielkonto übertragen werden. Snowflake verschlüsselt Dateien für Datenbankreplikationsoperationen mit einem zufälligen, eindeutigen Schlüssel für jeden Replikationsjob.

Wenn für die Replikationskonten (d. h. die Quell- und Zielkonten) außerdem Tri-Secret Secure aktiviert ist, werden die Dateien mit dem öffentlichen Schlüssel für ein Verschlüsselungsschlüsselpaar verschlüsselt, das durch den Kontohauptschlüssel (AMK) für Ihr Zielkonto geschützt ist. Die mit Tri-Secret Secure bereitgestellte zusätzliche Sicherheit schützt den AMK. Daher gilt dieser Schutz auch für Datendateien, die gerade übertragen werden.

Beachten Sie, dass die Tri-Secret Secure-Sicherheitsgarantien auch für Dateien gelten, die gerade übertragen werden. Wenn Sie den Zugriff auf den vom Kunden verwalteten Schlüssel (im Schlüsselverwaltungsdienst des Cloudanbieters, der Ihr Snowflake-Konto hostet) widerrufen, kann Snowflake die Datendateien während der Übertragung nicht entschlüsseln.

Weitere Informationen zur Datenverschlüsselung in Snowflake finden Sie unter Datenverschlüsselung.

Datenbankreplikation auf Konten in niedrigeren Editionen

Wenn eine lokale Datenbank als primäre Datenbank heraufgestuft wird und eine der folgenden Bedingungen erfüllt ist, zeigt Snowflake eine Fehlermeldung an:

  • Die Primärdatenbank befindet sich in einem Business Critical-Konto (oder höher), aber eines oder mehrere der zur Replikation genehmigten Konten befinden sich in niedrigeren Editionen. Die Business Critical-Edition ist für Snowflake-Konten mit äußerst sensiblen Daten vorgesehen.

  • Die Primärdatenbank befindet sich in einem Business Critical-Konto (oder höher), und es ist eine unterzeichnete Geschäftspartner-Vereinbarung vorhanden, um PHI-Daten gemäß den HIPAA-Vorschriften in dem Konto zu speichern, jedoch gibt es für die zur Replikation genehmigte Konten keine solche Vereinbarung, unabhängig davon, ob es sich um Business Critical-Konten (oder höhere) handelt.

Dieses Verhalten wird implementiert, um zu verhindern, dass Kontoadministratoren von Business Critical-Konten (oder höher) versehentlich vertrauliche Daten auf Konten mit niedrigeren Editionen replizieren.

Ein Kontoadministrator kann dieses Standardverhalten überschreiben, indem er beim Ausführen der Anweisung ALTER DATABASE … ENABLE REPLICATION TO ACCOUNTS die Klausel IGNORE EDITION CHECK einfügt. Wenn IGNORE EDITION CHECK festgelegt ist, kann die Primärdatenbank in jeder Snowflake-Edition auf die angegebenen Konten repliziert werden.

Aktuelle Einschränkungen bei Replikationen

  • Das Aktualisieren einer sekundären Datenbank wird blockiert, wenn in der primären Datenbank eine externe Tabelle vorhanden ist.

  • Aus Freigaben erstellte Datenbanken können nicht repliziert werden.