Snapshots für Backups und unveränderlichen Speicher¶
Snapshots helfen Unternehmen, kritische Daten vor Änderungen oder Löschungen zu schützen.
Snapshots sind diskrete Backups von Snowflake-Objekten. Sie wählen aus, welche Objekte gesichert werden sollen, wie häufig diese gesichert werden sollen, wie lange die Sicherungen aufbewahrt werden sollen, und ob Sie eine Aufbewahrungssperre hinzufügen möchten, damit die Objekte nicht vorzeitig gelöscht werden können.
Snapshot-Anwendungsfälle¶
Die folgenden Anwendungsfälle sind typische Anwendungen für Snapshots:
- Einhaltung von gesetzlicher Vorschriften:
Snapshots mit Aufbewahrungssperre helfen Unternehmen, Finanzinstituten und verwandten Branchen bei der Einhaltung von Vorschriften, die verlangen, dass Datensätze in einem unveränderlichen Format aufbewahrt werden.
Wichtig
Die Funktionalität der öffentlichen Vorschau ist nicht für bestimmte Vorschriften zertifiziert. Snowflake beabsichtigt, die Konformitätszertifizierung zu erhalten, sobald dieses Feature allgemein verfügbar ist.
- Wiederherstellung:
Snapshots helfen Unternehmen, diskrete Backups zu erstellen, um geschäftskritische Daten zu schützen und wiederherzustellen, im Falle von versehentlichen Änderungen oder Löschungen.
- Cyber-Ausfallsicherheit:
Snapshots mit Aufbewahrungssperre sind Teil einer Gesamtstrategie für die Cyber-Ausfallsicherheit. Sie helfen Unternehmen, geschäftskritische Daten bei Cyberangriffen, insbesondere Ransomware-Angriffen, zu schützen. Die Aufbewahrungssperre stellt sicher, dass diese Daten vom Angreifer nicht gelöscht werden können, selbst wenn er Zugriff auf das Konto erhält, indem die ACCOUNTADMIN- oder ORGADMIN-Rolle verwendet wird.
Die wichtigsten Konzepte¶
Dieser Abschnitt bietet eine Übersicht zu den wichtigsten Konzepten für Snapshots in Snowflake.
Snapshot¶
Ein Snapshot ist eine zeitpunktbezogene Sicherung eines Objekts.
Das Objekt kann eine einzelne Tabelle, ein Schema oder eine ganze Datenbank sein.
Ein bestimmter Snapshot kann durch eine eindeutige ID identifiziert werden, die von Snowflake generiert wurde.
Ein Snapshot kann nicht geändert werden. Er kann jedoch gelöscht werden, und der Ablaufzeitraum des Snapshots kann geändert werden (es sei denn, es wird eine Aufbewahrungssperre angewendet).
Im täglichen Betrieb interagieren Sie selten mit einzelnen Snapshots. Stattdessen verwalten Sie die Snapshot-Sets, die sie enthalten. Sie erhalten zum Beispiel eine Liste der Snapshots, indem Sie den Befehl SHOW SNAPSHOTS IN SNAPSHOT SET ausführen. Sie erstellen einen neuen Snapshot, indem Sie einen Befehl ALTER SNAPSHOT SET ausführen.
Tipp
Snowflake verwendet den Begriff Snapshots in anderen Kontexten, z. B. für Blockspeicher-Volumes oder für die Datenmenge, die während einer Replikationsaktualisierung übertragen wurde. Wenn es notwendig ist, das Snapshot-Feature von anderen Arten von Snapshots zu unterscheiden, verweisen wir auf WORM-Snapshots, d. h. „einmal beschreibbar und mehrfach lesbar“. Insbesondere die Anweisungen CREATE SNAPSHOT, ALTER SNAPSHOT, DROP SNAPSHOT, SHOW SNAPSHOTS und DESCRIBE SNAPSHOTS gelten alle für andere Arten von Snapshots.
Snapshot-Set¶
Ein Snapshot-Set ist ein Objekt auf Schemaebene, das einen Satz von Snapshots für eine bestimmte Datenbank, ein bestimmtes Schema oder eine bestimmte Tabelle enthält. Snowflake verfügt über SQL-Befehle zum CREATE, ALTER, DROP, SHOWund DESCRIBE von Snapshot-Sets.
Sie können mehrere Snapshot-Sets für dasselbe Objekt haben. Die Anzahl der Snapshot-Sets für dasselbe Objekt ist während der öffentlichen Vorschau begrenzt. Weitere Informationen dazu finden Sie unter Einschränkungen von Snapshots während des Zeitraums der öffentlichen Vorschau.
Der Lebenszyklus der Snapshots innerhalb eines Satzes wird durch eine optionale Snapshot-Richtlinie bestimmt, die Sie an das Snapshot-Set anhängen können. Sie können Snapshots auch manuell zu einem Snapshot-Set hinzufügen oder löschen. Ihre Möglichkeit, Snapshots zu löschen, wird durch andere Faktoren beeinflusst, insbesondere durch die Aufbewahrungssperre und gesetzliche Aufbewahrungsfrist.
Snapshot-Richtlinie¶
Eine Snapshot-Richtlinie ist ein Objekt auf Schemaebene, das die Einstellungen enthält, die den Lebenszyklus der Snapshots innerhalb eines Snapshot-Sets definieren. Zu diesen Einstellungen gehören Zeitplan, Ablauf und Aufbewahrungssperre.
Der Zeitplan bestimmt, wann Snapshots erstellt werden. Der Zeitplan kann als Intervall in Minuten oder als Cron-Ausdruck definiert werden. Wenn der Zeitplan beispielsweise auf eine Stunde eingestellt ist, wird alle 60 Minuten ein Snapshot des Objekts erstellt.
Die Ablaufzeit ist die Zeitspanne, für die der Snapshot gültig ist. Nach Ablauf eines Snapshots löscht Snowflake ihn automatisch, es sei denn, für diesen Snapshot gilt eine gesetzliche Aufbewahrungsfrist.
Tipp
Wenn für das Snapshot-Set keine Aufbewahrungssperre gilt und für den jeweiligen Snapshot keine rechtlichen Aufbewahrungsfristen gelten, können Sie den Snapshot vor dem Ende der Ablaufzeit manuell löschen. Sie können Snapshots nacheinander manuell löschen, immer beginnend mit dem ältesten Snapshot, für den keine gesetzliche Aufbewahrungsfrist gilt.
Jede Snapshot-Richtlinie muss eine oder beide Eigenschaften des Zeitplans und des Ablaufzeitraums haben. Sie können zum Beispiel eine Richtlinie mit einem Zeitplan und einer Ablauffrist erstellen und Snowflake das Erstellen und Entfernen der Snapshots in allen Snapshot-Sets überlassen, auf die diese Richtlinie angewendet wird. Alternativ können Sie eine Richtlinie mit einem Zeitplan und ohne Ablauffrist erstellen, wenn Sie das Entfernen älterer Snapshots selbst verwalten möchten. Sie können aber auch eine Richtlinie mit einer Ablauffrist, aber ohne Zeitplan erstellen und dann die Erstellung von Snapshots selbst verwalten. Sie können keine Richtlinie ohne Zeitplan und ohne Ablauffrist erstellen.
Wenn Sie eine Snapshot-Richtlinie mit einem Snapshot-Satz verknüpfen, können Sie dies tun, wenn Sie den Snapshot-Satz erstellen. Sie können die Richtlinie auch später anwenden. Sie können ebenfalls ein Snapshot-Set haben, das keine zugehörige Snapshot-Richtlinie hat. In diesem Fall steuern Sie manuell, wann neue Snapshots erstellt und alte Snapshots verfallen werden.
Sie können eine Snapshot-Richtlinie auf mehrere Snapshot-Sets anwenden. Wenn Sie eine Snapshot-Richtlinie ändern, wendet Snowflake die Änderungen auf alle Snapshot-Sets an, mit denen die Richtlinie verknüpft ist.
Aufbewahrungssperre¶
Eine Aufbewahrungssperre schützt einen Snapshot für die definierte Ablauffrist vor dem Löschen. Sie können einen Snapshot mit einer Aufbewahrungssperre für Backups zur Einhaltung gesetzlicher Bestimmungen und zur Cyber-Ausfallsicherheit verwenden. Die folgenden Einschränkungen gelten für ein Snapshot-Set mit Aufbewahrungssperre:
Snapshots können von keiner Rolle gelöscht werden, auch nicht von der ACCOUNTADMIN-Rolle.
Sie können die Ablauffrist des Snapshots nicht verkürzen, aber Sie können die Ablauffrist verlängern.
Sie können ein Snapshot-Set nicht löschen, wenn noch nicht abgelaufene Snapshots im Set vorhanden sind.
Sie können ein Schema, das ein Snapshot-Set mit nicht abgelaufenen Snapshots enthält, nicht löschen.
Sie können eine Datenbank, die ein Snapshot-Set mit noch nicht abgelaufenen Snapshots enthält, nicht löschen.
Sie können ein Konto, das eine Datenbank mit einem Snapshot-Set enthält, in dem noch nicht abgelaufene Snapshots vorhanden sind, nicht löschen.
Wichtig
Das Anwenden einer Snapshot-Richtlinie mit einer Aufbewahrungssperre auf ein Snapshot-Set ist unumkehrbar. Aufgrund der starken Garantien, die für die Einhaltung gesetzlicher Vorschriften erforderlich sind, können Sie die Sperre nicht mehr widerrufen, nachdem Sie einem Snapshot-Set eine Aufbewahrungssperre erteilt haben. Der Snowflake-Support kann eine solche Aufbewahrungssperre auch nicht widerrufen. Planen Sie sorgfältig, bevor Sie eine Aufbewahrungssperre für ein Snapshot-Set mit einer langen Ablauffrist festlegen, um unerwartete Speichergebühren für nicht löschbare Snapshot-Sets und die Schemas und Datenbanken, die sie enthalten, zu vermeiden.
Wenn eine Snowflake-Organisation gelöscht wird, ist die Organisation nicht mehr ein Snowflake-Kunde. In diesem Fall löscht Snowflake alle Snapshots, auch solche mit Aufbewahrungssperren. Das Löschen einer Snowflake-Organisation erfordert die Einbeziehung des Snowflake-Supports. Das kann ein Administrator nicht versehentlich tun.
Gesetzliche Aufbewahrungsfrist¶
Das Feature Gesetzliche Aufbewahrungsfrist von Snowflake-Snapshots verhindert, dass Snapshots überschrieben oder gelöscht werden. Auf diese Weise können Sie Snowflake-Datenbanken, -Schemas oder -Tabellen auf der Grundlage Ihrer eigenen rechtlichen Anforderungen erhalten.
Mit Snowflake können Sie für bestimmte Snapshots eine gesetzliche Aufbewahrungsfrist festlegen. Wenn ein Snowflake-Snapshot unter gesetzliche Aufbewahrungsfristen fällt, gelten die folgenden Bedingungen:
Niemand kann den Snapshot ändern.
Niemand kann den Snapshot löschen. Das gilt auch dann, wenn die Frist EXPIRE_AFTER_DAYS des Snapshots abgelaufen ist.
Der Zugriff auf den Snapshot wird protokolliert und ist überprüfbar.
Die gesetzliche Aufbewahrungsfrist kann im Gegensatz zu einer Aufbewahrungssperre von einem berechtigten Benutzer entfernt werden.
Wichtig
Wenn Sie ein Snapshot-Set replizieren, müssen Sie sofort nach dem Setzen einer gesetzlichen Aufbewahrungsfrist für einen Snapshot in diesem Snapshot-Set eine Aktualisierung ausführen. Wenn Sie ein Failover durchführen, bevor Sie den Snapshot-Satz replizieren, der die gesetzliche Aufbewahrungsfrist enthält, kann das ursprüngliche Snapshot-Set bei einem Failback zum ursprünglichen Primärkonto überschrieben werden, wodurch die ursprüngliche gesetzliche Aufbewahrungsfrist möglicherweise gelöscht wird.
Überblick über den Lebenszyklus des Snapshots¶
Das folgende Diagramm zeigt, wie die Snowflake-Objekte, Snapshots, Snapshot-Sets und Snapshot-Richtlinien miteinander in Beziehung stehen. Das Diagramm enthält die einfachste Art von Snapshot: einen Snapshot für eine einzelne Tabelle. Jede Backup-Operation erstellt einen neuen Snapshot. Alle Snapshots für dieses bestimmte Objekt sind in einem Snapshot-Set zusammengefasst. Das automatische Hinzufügen und Entfernen von Snapshots im Snapshot-Set wird von der Snapshot-Richtlinie geregelt. Um die Informationen aus einem Snapshot wiederherzustellen, verwenden Sie einen CREATE-Befehl, um ein neues Objekt aus einem bestimmten Snapshot zu erstellen.

Funktionsweise von Snapshots¶
Snapshots sind Null-Kopie-Sicherungen eines Snowflake-Objekts, ähnlich wie Klone. Snapshots erstellen keine Kopien von Tabellendaten, wenn sie erstellt werden. Der Snapshot-Mechanismus sichert Tabellendaten, ohne dass zusätzliche Zeit oder zusätzliche Kosten für das Kopieren der Daten anfallen.
Snowflake speichert die Daten in Dateien, die unveränderlich sind, und verwaltet Zeiger von Snapshots auf die der Tabelle zugrunde liegenden Datendateien. Wenn sich die Tabelle weiterentwickelt und geändert wird, stellt Snowflake sicher, dass jede Datendatei vor dem Löschen geschützt ist, solange es einen nicht abgelaufenen Snapshot gibt, der auf diese Datei verweist.
Einschränkungen für Snapshots¶
Snowflake erzwingt die folgenden Einschränkungen für Snapshots:
Sie können die Aufbewahrungssperre für eine Snapshot-Richtlinie nicht ändern.
Wenn eine Richtlinie über eine Aufbewahrungssperre verfügt, können Sie den Ablaufzeitraum verlängern, aber nicht verkürzen.
Das minimale Zeitplanintervall für geplante Snapshots beträgt eine Stunde (60 Minuten).
Einschränkungen von Snapshots während des Zeitraums der öffentlichen Vorschau¶
Die folgenden Beschränkungen können sich ändern, wenn das Snapshot-Feature allgemein verfügbar wird:
Wenn Sie einen regelmäßigen Zeitplan für Snapshots einrichten, erlegt Snowflake eine maximale Aufbewahrungsfrist auf, die auf der Häufigkeit der geplanten Snapshots basiert. In einer Snapshot-Richtlinie ist die EXPIRE_AFTER_DAYS-Eigenschaft auf der Grundlage der zugehörigen SCHEDULE-Eigenschaft wie folgt beschränkt:
Snapshot-Richtlinien mit einer Häufigkeit von 60 bis 119 Minuten haben einen maximalen EXPIRE_AFTER_DAYS-Wert von 90.
Snapshot-Richtlinien mit einer Häufigkeit von 120 Minuten bis 23 Stunden und 59 Minuten haben einen maximalen EXPIRE_AFTER_DAYS-Wert von 180.
Snapshot-Richtlinien mit einer Häufigkeit von 24 Stunden oder mehr haben einen maximalen EXPIRE_AFTER_DAYS-Wert von 366.
Snapshot-Richtlinien ohne Zeitplan haben einen maximalen EXPIRE_AFTER_DAYS-Wert von 3653.
Sie können maximal zwei Datenbank-Snapshot-Sets für eine bestimmte Datenbank erstellen. Ebenso können Sie maximal zwei Schema-Snapshot-Sets für ein bestimmtes Schema und zwei Tabellen-Snapshot-Sets für eine bestimmte Tabelle erstellen. Ein Objekt kann immer noch in mehr als zwei Snapshot-Sets vorkommen. Eine Tabelle kann zum Beispiel ein oder zwei zugeordnete Tabellen-Snapshot-Sets haben. Dieselbe Tabelle kann auch in einem oder zwei Schema-Snapshot-Sets und einem oder zwei Datenbank-Snapshot-Sets enthalten sein.
Nachdem eine Snapshot-Richtlinie auf ein Snapshot-Set angewendet wurde, können Sie die Richtlinie nicht mehr aus diesem Snapshot-Set entfernen.
Vergleich von Snapshots mit anderen Features für Notfallwiederherstellung und Geschäftskontinuität¶
Snapshots bieten die folgenden Vorteile, die sich von anderen Features für Geschäftskontinuität und Notfallwiederherstellung wie Replikation und Time Travel unterscheiden:
Sie können eine langfristige Aufbewahrung für Snapshots aktivieren. Eine langfristige Aufbewahrung hilft bei der Wiederherstellung, bei der Einhaltung gesetzlicher Vorschriften und bei der Cyber-Sicherheit gegen Bedrohungen wie Ransomware oder Insider-Angriffe.
Die Aufbewahrungssperre stellt sicher, dass Snapshots von keinem Benutzer, einschließlich Kontoadministratoren, gelöscht werden können.
Sie können Snapshots für einen anderen Zeitrahmen planen als Sie für andere Datenübertragungsoperationen verwenden, z. B. Replikationsaktualisierungen.
Sie können einzelne Tabellenobjekte oder Containerobjekte wie ganze Schemas oder Datenbanken als Snapshots erstellen und wiederherstellen.
Sie können verhindern, dass die Aufbewahrungsdauer von Backups nach der Erstellung des Backups verkürzt wird, indem Sie eine Snapshot-Richtlinie verwenden, die eine Aufbewahrungssperre enthält. Das ist anders als beim Time Travel-Feature, mit dem Sie das Aufbewahrungsintervall auf Null reduzieren können.
Im Gegensatz zu Time Travel und Fail-safe bewahren Snapshots Daten aus mehr Objekttypen als nur Tabellen und Tabellendaten auf.
Die Geschwindigkeit und Speichereffizienz der Erstellung von Backups ähnelt dem Nullkopie-Mechanismus, der beim Klonen verwendet wird.
Die Art und Weise, wie alle Snapshots für dasselbe Objekt in Snapshot-Sets gruppiert werden, macht die Verwaltung einfacher, als wenn Sie Klone verwenden, um Ihren eigenen Backup-Mechanismus zu implementieren. So müssen Sie z. B. keine große Anzahl von Objekten verwalten, ein Namensschema entwickeln, um die geklonten Objekte zu verfolgen, oder einen Zeitplanmechanismus implementieren, um alte Klone zu löschen. Außerdem können Snapshots im Gegensatz zu geklonten Objekten nach dem Erstellen nicht mehr geändert werden.
Jeder Snapshot repräsentiert eine einzelne Tabelle, ein Schema oder eine Datenbank zum angegebenen Zeitpunkt. Snapshots enthalten keine Objekte auf Kontoebene wie Benutzer oder Rollen. Einige Arten von Tabellen und anderen Objekten auf Datenbankebene sind nicht in den Schema- und Datenbank-Snapshots enthalten. Weitere Informationen dazu finden Sie unter Snapshot-Objekte.
Snapshot-bezogene Objekte werden in derselben Region des Clouddienstanbieters (CSP) gespeichert wie die zugehörige Datenbank, das Schema oder die Tabelle. In Szenarios für Geschäftskontinuität und Notfallwiederherstellung kombinieren Sie normalerweise Snapshots mit der Snowflake-Kontoreplikation. Auf diese Weise können alle Snapshot-Sets und Snapshot-Richtlinien in eine andere Region oder in einen anderen CSP repliziert und wiederhergestellt werden, auch wenn es einen Ausfall gibt, der die ursprüngliche Region oder CSP betrifft.
Snapshot-Sets und Snapshot-Richtlinien können nicht geklont werden. Wenn Sie ein Schema oder eine Datenbank klonen, die solche Objekte enthält, werden sie nicht in das geklonte Schema oder die geklonte Datenbank aufgenommen.
Snapshot-Objekte¶
Sie können Snapshot-Sets für Tabellen, Schemas und Datenbanken erstellen.
Referenzen von Tabellen auf andere Objekte¶
Objekte, wie z. B. Ansichten oder Funktionen, können im Snapshot auf Objekte außerhalb des Schemas oder der Datenbank verweisen. Um sicherzustellen, dass solche Referenzen nach der Wiederherstellung aus einem Snapshot weiterhin funktionieren, verwenden Sie eine der folgenden Strategien:
Wenn sich die Tabellen und die anderen Objekte, auf die sie verweisen, alle in demselben Schema oder derselben Datenbank befinden, erstellen Sie ein Snapshot-Set für das gesamte Schema oder die gesamte Datenbank. Auf diese Weise stellt Snowflake alle verbundenen Objekte auf einmal wieder her, wenn Sie aus dem Snapshot wiederherstellen.
Wenn Objekte in einem Snapshot-Set auf Objekte verweisen, die nicht im Snapshot-Set enthalten sind, sollten Sie beachten, dass bei Wiederherstellung eines Snapshots die Referenzen von den wiederhergestellten Objekten auf die ursprünglichen Objekte aus der anderen Datenbank oder dem anderen Schema verweisen. Wenn Sie diese anderen Objekte nach der Erstellung des Snapshots gelöscht oder deren Eigenschaften geändert haben, können beim Zugriff auf die wiederhergestellten Objekte Fehler auftreten.
Bei Objekten auf Kontoebene verweisen alle Referenzen von wiederhergestellten Objekten immer auf das ursprüngliche Objekt auf Kontoebene. Das liegt daran, dass die Objekte auf Kontoebene nicht Teil eines Snapshots sind. Ein Schema-Snapshot könnte zum Beispiel ein Geheimnis enthalten, das auf eine Sicherheitsintegration verweist. Die Sicherheitsintegration ist ein Objekt auf Kontoebene und kann nicht in einen Snapshot aufgenommen werden.
Objekttypen in Datenbank- und Schema-Snapshots¶
In der folgenden Tabelle sind die Objekte aufgeführt, die in einem Datenbank- oder Schema-Snapshot enthalten sind:
Objekt |
Im Snapshot enthalten |
Anmerkungen |
---|---|---|
Permanente Tabellen |
Ja |
Time Travel-Informationen für Tabellen werden nicht als Teil eines Snapshots gespeichert. |
Transiente Tabellen |
Ja |
Solche Tabellen sind weiterhin transiente Tabellen, nachdem Sie sie wiederhergestellt haben. Transiente Schemas und transiente Datenbanken behalten auch die transiente Eigenschaft bei, nachdem Sie sie wiederhergestellt haben. |
Temporäre Tabellen |
Nein |
Temporäre Tabellen sind auf die Sitzung beschränkt und nicht in den Snapshots enthalten. |
Dynamische Tabellen |
Ja |
Dynamische Tabellen haben ihre eigene Datendefinitionssprache (DDL) für Snapshots. Sie können die Befehle CREATE SNAPSHOT SET FOR DYNAMIC TABLE und CREATE DYNAMIC TABLE FROM SNAPSHOT SET ausführen. Wenn Sie eine dynamische Tabelle aus einem Snapshot wiederherstellen, wird die neue Tabelle bei der ersten Aktualisierung von Snowflake automatisch initialisiert. |
Externe Tabellen |
Nein |
|
Hybridtabellen |
Nein |
|
Apache Iceberg™-Tabellen |
Nein |
|
Tabelleneinschränkungen |
Ja |
|
Ereignistabellen |
Nein |
|
Sequenzen |
Ja |
|
Ansichten |
Ja |
|
Materialisierte Ansichten |
Nein |
|
Sichere Ansichten |
Ja |
|
Dateiformate |
Ja |
|
Interne Stagingbereiche |
Nein |
|
Externe Stagingbereiche |
Nein |
|
Temporäre Stagingbereiche |
Nein |
|
Verzeichnistabellen |
Nein |
|
Pipes |
Nein |
|
Gespeicherte Prozeduren |
Ja |
Alle Prozeduren von SQL, Javascript, Python, Java und Scala werden unterstützt. |
Benutzerdefinierte Funktionen (UDFs) |
Ja |
Alle Funktionen von SQL, Javascript, Python, Java und Scala werden unterstützt. Beide skalaren UDFs und benutzerdefinierte Tabellenfunktionen (UDTFs) sind im Snapshot enthalten. Java UDFs in Snapshots haben die gleichen Anforderungen wie in Beschränkungen beim Klonen. |
Streams |
Nein |
|
Aufgaben |
Ja |
Aufgaben sind im Snapshot enthalten. Aufgaben, die aus einem Snapshot wiederhergestellt wurden, werden angehalten und müssen fortgesetzt werden. |
Datenmetrikfunktionen (DMFs) |
Nein |
|
Richtlinien |
Ja |
Die folgenden Arten von Richtlinien sind in einem Schema- oder Datenbank-Snapshot enthalten:
Wenn auf eine im Snapshot enthaltene Tabelle eine andere Art von Richtlinie angewendet wird, z. B. eine Aggregationsrichtlinie oder eine Projektionsrichtlinie, schlägt das Erstellen des Snapshots fehl. |
Zuweisungen |
Ja |
Wenn Sie eine Rolle löschen, werden die damit verbundenen Eigentumsrechte an die Rolle übertragen, die den Befehl DROP ROLE ausführt. Andere Zuweisungen als die Eigentümerschaft werden in diesem Fall gelöscht. Daher können sich die Berechtigungen für ein wiederhergestelltes Objekt von den Berechtigungen unterscheiden, die beim Erstellen des Snapshots bestanden. |
Datenbankrollen |
Nein |
|
Objekt-Tagging |
Ja |
|
Alerts |
Ja |
|
Netzwerkregeln |
Ja |
|
Github-Repositorys |
Nein |
|
Modelle |
Nein |
|
Modellmonitore |
Nein |
|
Datensets |
Nein |
|
Notebooks |
Nein |
|
Kontakte |
Nein |
|
Cortex search services |
Nein |
|
Dbt-Projekte |
Nein |
|
Image-Repositorys |
Nein |
|
Freigabeangebote |
Nein |
|
Organisations-Freigabeangebote |
Nein |
|
Pipes |
Nein |
|
Richtlinie (Aggregation) |
Nein |
|
Richtlinie (Authentifizierung) |
Nein |
|
Richtlinie (Feature) |
Nein |
|
Richtlinie (Verknüpfung) |
Nein |
|
Richtlinie (Pakete) |
Nein |
|
Richtlinie (Kennwort) |
Nein |
|
Richtlinie (Datenschutz) |
Nein |
|
Richtlinie (Projektion) |
Nein |
|
Richtlinie (Sitzung) |
Nein |
|
Bereitgestellter Durchsatz |
Nein |
|
Semantische Ansichten |
Nein |
|
Services |
Nein |
|
Streamlits |
Nein |
Wie Snowflake Objekte mit den dazugehörigen Snapshot-Sets verknüpft¶
Wenn Sie ein Snapshot-Set für eine Datenbank, ein Schema oder eine Tabelle erstellen, verknüpft Snowflake das Snapshot-Set mit der internen ID dieser Datenbank, dieses Schemas oder dieser Tabelle. Wenn Sie das ursprüngliche Objekt löschen, können Sie diesem Snapshot-Set keine weiteren Snapshots hinzufügen. Dieses Verhalten gilt auch dann, wenn Sie ein Objekt mit demselben Namen neu erstellen oder es durch ein Objekt ersetzen, das aus einem Snapshot wiederhergestellt wurde.
Wenn Sie stattdessen das ursprüngliche Objekt umbenennen, können Sie weitere Backups davon erstellen, indem Sie weitere Snapshots zum selben Snapshot-Set hinzufügen. In diesem Fall ändert sich die Ausgabe von SHOW SNAPSHOT SETS, um den OBJECT_NAME-Wert des umbenannten Objekts zu berücksichtigen.
Wenn Sie Backups einer Tabelle erstellen möchten, diese Tabelle aber häufig löschen und neu erstellen, z. B. über CREATE OR REPLACE-Anweisungen, nehmen Sie sie in ein Snapshot-Set für das Schema oder die Datenbank auf, die die Tabelle enthält. Auf diese Weise können Sie unabhängig von den Änderungen an der Tabelle weiterhin dasselbe Snapshot-Set verwenden.
Wenn Sie eine Tabelle aus einem Snapshot wiederherstellen, beginnt die wiederhergestellte Tabelle mit einem anderen Namen als die ursprüngliche Tabelle. Angenommen, Sie möchten den Inhalt der ursprünglichen Tabelle vollständig durch die Snapshot-Daten ersetzen und weiterhin dasselbe Snapshot-Set für weitere Backups derselben Tabelle verwenden. Verwenden Sie in diesem Fall die Anweisung TRUNCATE oder DELETE zum Entfernen des Inhalts der ursprünglichen Tabelle sowie die Anweisung INSERT … SELECT zum Kopieren der Daten aus der wiederhergestellten Tabelle. Löschen Sie nicht die ursprüngliche Tabelle, und benennen Sie die wiederhergestellte Tabelle nicht in den Namen der ursprünglichen Tabelle um.
Snapshots und Verschlüsselung¶
Die Daten in Snapshot-Sets sind durch dieselbe End-to-End-Verschlüsselung geschützt wie andere Snowflake-Objekte und -Tabellendaten. Weitere Informationen zur Snowflake-Verschlüsselung finden Sie unter Erläuterungen zur End-to-End-Verschlüsselung in Snowflake.
Die Schlüsselrotation gilt auch für die Daten in Snapshots.
Snapshots und Datenherkunft¶
Snowflake behält nicht die Datenherkunft Metadaten bei Datenbank-, Schema- und Tabellen-Snapshots bei. Nachdem Sie ein Objekt aus einem Snapshot wiederhergestellt haben, können Sie Snowsight nicht mehr verwenden, um Herkunftsinformationen für die wiederhergestellten Daten anzuzeigen.
Kosten für Snapshots¶
Die folgende Tabelle beschreibt die Gebühren für Snapshots.
Kostenkomponente |
Beschreibung |
Wird während der öffentlichen Vorschau abgerechnet |
---|---|---|
Snapshot-Computing |
Der von Snowflake verwaltete Computedienst generiert geplante Snapshot-Erstellung und -Ablauf. |
Ja |
Computing wiederherstellen |
Von Snowflake verwaltete Warehouses werden verwendet, um Objekte aus Snapshots wiederherzustellen. |
Ja |
Snapshot-Speicher |
Von Snowflake verwalteter Cloud-Objektspeicher zum Speichern von Snapshot-Daten. |
Wird für Bytes in Rechnung gestellt, die für Snapshots beibehalten werden, ähnlich wie für Bytes, die für Klone beibehalten werden. |
Sie können die Kosten für die Speicherung von Snapshots in der Ansicht TABLE_STORAGE_METRICS mithilfe der Spalte RETAINED_FOR_CLONE_BYTES
und in der Ansicht SNAPSHOT_STORAGE_USAGE überwachen.
Zugriffssteuerungsrechte¶
In der folgenden Tabelle sind die Berechtigungen und der Objekttyp aufgeführt, für die die Berechtigung zum Verwalten und Verwenden von Snapshots erteilt wird.
Berechtigung |
Objekttyp |
Beschreibung |
---|---|---|
CREATE SNAPSHOT POLICY |
Schema |
Ermöglicht das Erstellen einer Snapshot-Richtlinie in einem Schema. Die Rolle, die diese Berechtigung gewährt, muss auch die Berechtigung USAGE für das Schema haben. |
CREATE SNAPSHOT SET |
Schema |
Ermöglicht das Erstellen eines Snapshot-Sets in einem Schema. Die Rolle, die diese Berechtigung gewährt, muss auch die Berechtigung USAGE für das Schema haben. Um das Snapshot-Set tatsächlich zu erstellen, ist auch die entsprechende Berechtigung für das Objekt erforderlich, das Subjekt des Snapshot-Sets ist: SELECT für einen Tabellen-Snapshot oder USAGE für einen Schema-Snapshot oder einen Datenbank-Snapshot. |
APPLY |
Snapshot-Richtlinie |
Ermöglicht das Anwenden einer bestimmten Snapshot-Richtlinie. Nur ein Benutzer mit der ACCOUNTADMIN-Rolle kann diese Berechtigung erteilen. |
APPLY SNAPSHOT RETENTION LOCK |
Konto |
Ermöglicht das Erstellen und Anwenden von Snapshot-Richtlinien mit der Aufbewahrungssperre. Diese Berechtigung wird der ACCOUNTADMIN-Rolle erteilt und kann delegiert werden. Diese Berechtigung ist erforderlich, damit eine Rolle Folgendes tun kann:
|
APPLY LEGAL HOLD |
Konto |
Ermöglicht das Hinzufügen oder Entfernen einer gesetzlichen Aufbewahrungsfrist für einen Snapshot. Standardmäßig verfügt die Rolle ACCOUNTADMIN über diese Berechtigung. |
Erforderliche Berechtigungen erteilen, um Snapshot-Richtlinien und -Sets zu erstellen¶
Bemerkung
Die Rolle, mit der diese Berechtigungen gewährt werden, muss die OWNERSHIP-Berechtigung für das Schema haben, oder sie muss die Berechtigung CREATE SNAPSHOT SET oder CREATE SNAPSHOT POLICY WITH GRANT OPTION haben.
Sie können einer kundenspezifischen Kontorolle oder einer Datenbankrolle die folgenden Berechtigungen erteilen.
Zum Aktivieren der Rolle myrole
, um eine Snapshot-Richtlinie im Schema myschema
zu erstellen, führen Sie die folgende Anweisung aus:
GRANT CREATE SNAPSHOT POLICY ON SCHEMA policy_schema TO ROLE myrole;
Zum Aktivieren der Rolle myrole
, um einen Snapshot im Schema myschema
zu erstellen, führen Sie die folgende Anweisung aus:
GRANT CREATE SNAPSHOT SET ON SCHEMA policy_schema TO ROLE myrole;
Einer Rolle die APPLY-Berechtigung für eine Snapshot-Richtlinie erteilen¶
Bemerkung
Nur ein Benutzer mit der ACCOUNTADMIN-Rolle kann diese Berechtigung erteilen.
Sie können diese Berechtigung einer kundenspezifischen Kontorolle oder einer Datenbankrolle erteilen.
Zum Aktivieren der Rolle myrole
, um die Snapshot-Richtlinie hourly_snapshot_policy
auf ein Snapshot-Set anzuwenden, führen Sie die folgende Anweisung aus:
GRANT APPLY ON SNAPSHOT POLICY hourly_snapshot_policy TO ROLE myrole;
Einer Rolle die Berechtigung APPLY SNAPSHOT RETENTION LOCK erteilen¶
Sie können einer Rolle die Berechtigung erteilen, Snapshot-Richtlinien mit einer Aufbewahrungssperre auf Snapshot-Sets anzuwenden.
Nur ein Benutzer mit der ACCOUNTADMIN-Rolle kann diese Berechtigung erteilen.
Wichtig
Das Anwenden einer Snapshot-Richtlinie mit einer Aufbewahrungssperre auf ein Snapshot-Set ist unumkehrbar. Aufgrund der starken Garantien, die für die Einhaltung gesetzlicher Vorschriften erforderlich sind, können Sie die Aufbewahrungssperre, sobald Sie sie für ein Snapshot-Set festgelegt haben, nicht mehr widerrufen. Der Snowflake-Support kann eine solche Aufbewahrungssperre auch nicht widerrufen. Snapshots, die mit einer Aufbewahrungssperre erstellt wurden, können erst nach Ablauf des Zeitraums gelöscht werden.
Wenn eine Snowflake-Organisation gelöscht wird, ist die Organisation nicht mehr ein Snowflake-Kunde. In diesem Fall löscht Snowflake alle Snapshots, auch solche mit Aufbewahrungssperren.
Zum Aktivieren der Rolle retention_lock_admin_role
, um eine Snapshot-Richtlinie mit einer Aufbewahrungssperre auf ein Snapshot-Set anzuwenden, führen Sie die folgende Anweisung aus:
GRANT APPLY SNAPSHOT RETENTION LOCK ON ACCOUNT TO ROLE retention_lock_admin_role;
Snapshots erstellen und konfigurieren¶
In diesem Abschnitt finden Sie Beispiel-Workflows für das Erstellen und Wiederherstellen von Snapshots.
Geplante Snapshots erstellen¶
Erstellen Sie ein Snapshot-Set, das automatisch Snapshots nach einem Zeitplan erstellt.
Erstellen Sie eine Snapshot-Richtlinie unter Verwendung des Befehls CREATE SNAPSHOT POLICY. Die folgende Richtlinie erstellt zum Beispiel jede Stunde einen Snapshot, beginnend mit dem Zeitpunkt, an dem das Snapshot-Set erstellt wird. Jeder Snapshot verfällt nach 90 Tagen.
CREATE SNAPSHOT POLICY hourly_snapshot_policy SCHEDULE = '60 MINUTE' EXPIRE_AFTER_DAYS = 90 COMMENT = 'Hourly backups expire after 90 days';
Erstellen Sie ein Snapshot-Set für die Tabelle
t1
mit der Snapshot-Richtliniehourly_snapshot_policy
:CREATE SNAPSHOT SET t1_snapshots FOR TABLE t1 WITH SNAPSHOT POLICY hourly_snapshot_policy;
Erstellen Sie ein Snapshot-Set für das Schema
s1
mit der Snapshot-Richtliniehourly_snapshot_policy
:CREATE SNAPSHOT SET s1_snapshots FOR SCHEMA s1 WITH SNAPSHOT POLICY hourly_snapshot_policy;
Erstellen Sie ein Snapshot-Set für die Datenbank
d1
mit der Snapshot-Richtliniehourly_snapshot_policy
:CREATE SNAPSHOT SET d1_snapshots FOR DATABASE d1 WITH SNAPSHOT POLICY hourly_snapshot_policy;
Geplante Snapshots mit einer Aufbewahrungssperre erstellen¶
Erstellen Sie ein Snapshot-Set, das automatisch Snapshots mit einer Aufbewahrungssperre nach einem Zeitplan erstellt. Die Aufbewahrungssperre verhindert, dass Benutzer, also auch berechtigte Benutzer, Snapshots in einem Snapshot-Set löschen oder ändern können, mit dem die Richtlinie verknüpft ist.
Nur eine Rolle, die die Berechtigung APPLY SNAPSHOT RETENTION LOCK für das Konto hat, kann eine Snapshot-Richtlinie mit einer Aufbewahrungssperre erstellen.
Wichtig
Das Anwenden einer Snapshot-Richtlinie mit einer Aufbewahrungssperre auf ein Snapshot-Set ist unumkehrbar. Aufgrund der starken Garantien, die für die Einhaltung gesetzlicher Vorschriften erforderlich sind, können Sie die Aufbewahrungssperre, sobald Sie sie für ein Snapshot-Set festgelegt haben, nicht mehr widerrufen. Der Snowflake-Support kann eine solche Aufbewahrungssperre auch nicht widerrufen. Snapshots, die mit einer Aufbewahrungssperre erstellt wurden, können erst nach Ablauf des Zeitraums gelöscht werden.
Wenn eine Snowflake-Organisation gelöscht wird, ist die Organisation nicht mehr ein Snowflake-Kunde. In diesem Fall löscht Snowflake alle Snapshots, auch solche mit Aufbewahrungssperren.
Erstellen Sie eine Richtlinie mit einer Aufbewahrungssperre, die einen täglichen Snapshot mit einem Ablaufzeitraum von 90 Tagen erstellt:
CREATE SNAPSHOT POLICY daily_snapshot_policy_with_lock WITH RETENTION LOCK SCHEDULE = '1440 MINUTE' EXPIRE_AFTER_DAYS = 90 COMMENT = 'regulatory backups: they have a retention lock and expire after 90 days';
Erstellen Sie ein Snapshot-Set für die Tabelle
t2
mit der Snapshot-Richtliniedaily_snapshot_policy_with_lock
:CREATE SNAPSHOT SET t2_snapshots FOR TABLE t2 WITH SNAPSHOT POLICY daily_snapshot_policy_with_lock;
Erstellen Sie ein Snapshot-Set für das Schema
s2
mit der Snapshot-Richtliniedaily_snapshot_policy_with_lock
:CREATE SNAPSHOT SET s2_snapshots FOR SCHEMA s2 WITH SNAPSHOT POLICY daily_snapshot_policy_with_lock;
Erstellen Sie ein Snapshot-Set für die Datenbank
d2
mit der Snapshot-Richtliniedaily_snapshot_policy_with_lock
:CREATE SNAPSHOT SET d2_snapshots FOR DATABASE d2 WITH SNAPSHOT POLICY daily_snapshot_policy_with_lock;
Snapshots manuell erstellen¶
Sie können einen Snapshot jederzeit manuell zu einem Snapshot-Set hinzufügen. Dadurch wird ein Snapshot der Datenbank, des Schemas oder der Tabelle erstellt, die mit dem Snapshot-Set verbunden ist. Sie können Snapshots manuell erstellen, unabhängig davon, ob das Snapshot-Set auch Snapshots enthält, die durch eine Snapshot-Richtlinie geplant sind. Wenn mit dem Snapshot-Set eine Snapshot-Richtlinie verknüpft ist, und die Richtlinie einen Ablaufzeitraum definiert, gilt dieser Ablaufzeitraum auch für den manuellen Snapshot.
Im folgenden Beispiel wird ein Tabellen-Snapshot-Set t1_snapshots
erstellt und dann der erste Snapshot hinzugefügt:
CREATE SNAPSHOT SET t1_snapshots FOR TABLE t1;
ALTER SNAPSHOT SET t1_snapshots ADD SNAPSHOT;
Das folgende Beispiel erstellt eine Snapshot-Richtlinie mit stündlichen Backups, ein Tabellen-Snapshot-Set t2_snapshots
, das die Richtlinie verwendet und dann einen manuellen Snapshot zum Snapshot-Set hinzufügt:
CREATE SNAPSHOT POLICY hourly_snapshot_policy
SCHEDULE = '60 MINUTE'
EXPIRE_AFTER_DAYS = 7;
CREATE SNAPSHOT SET t2_snapshots FOR TABLE t2 WITH SNAPSHOT POLICY hourly_snapshot_policy;
-- Wait several hours. Then the snapshot set already contains several scheduled snapshots.
-- You can manually add a snapshot at any time, in addition to the scheduled snapshots.
ALTER SNAPSHOT SET t2_snapshots ADD SNAPSHOT;
Sie können ähnliche Befehle ausführen, um einen Snapshot zu einem Schema- oder Datenbank-Snapshot-Set hinzuzufügen. Ersetzen Sie den Namen des Schema- oder Datenbank-Snapshots, der im Befehl ALTER SNAPSHOT SET festgelegt wurde.
Eine Snapshot-Richtlinie für ein Snapshot-Set aussetzen¶
Wenn Sie eine Snapshot-Richtlinie für ein Snapshot-Set aussetzen, verhindern Sie, dass die Snapshot-Richtlinie verwendet wird, um neue geplante Snapshots in diesem Snapshot-Set zu erstellen. Sie setzen auch das Ablaufen von vorhandenen Snapshots in diesem Snapshot-Set aus, die die Snapshot-Richtlinie verwenden. Andere Snapshot-Sets, die dieselbe Richtlinie verwenden, sind davon nicht betroffen.
Im folgenden Beispiel wird eine Snapshot-Richtlinie für das Snapshot-Set t2_snapshots
ausgesetzt:
ALTER SNAPSHOT SET t2_snapshots SUSPEND SNAPSHOT POLICY;
Weitere Informationen über den Befehl ALTER SNAPSHOT SET finden Sie unter ALTER SNAPSHOT SET.
Eine Snapshot-Richtlinie für ein Snapshot-Set fortsetzen¶
Sie können ausgesetzte Snapshot-Richtlinien fortsetzen. Dadurch werden das Erstellen und das Ablaufen von Snapshots gemäß der Snapshot-Richtlinie fortgesetzt. Wenn ein Snapshot das Ablaufdatum erreicht hat, während die Richtlinie ausgesetzt wurde, löscht Snowflake diese Snapshots, sobald die Richtlinie fortgesetzt wird.
Das folgende Beispiel setzt eine Snapshot-Richtlinie auf dem Snapshot-Set t1_snapshot
fort:
ALTER SNAPSHOT SET t1_snapshots RESUME SNAPSHOT POLICY;
Weitere Informationen über den Befehl ALTER SNAPSHOT SET finden Sie unter ALTER SNAPSHOT SET.
Snapshots wiederherstellen¶
Sie können ein Objekt aus einem Snapshot-Set wiederherstellen, indem Sie die ID des jeweiligen Snapshots verwenden. Um beispielsweise die Tabelle t1
aus dem Snapshot-Set t1_snapshots
im aktuellen Schema wiederherzustellen, führen Sie die folgenden Anweisungen aus:
Suchen Sie die ID des Tabellen-Snapshots, der in der Spalte
snapshot_id
wiederhergestellt werden soll:SHOW SNAPSHOTS IN SNAPSHOT SET t1_snapshots ->> SELECT "created_on", "snapshot_id", "expire_on" FROM $1;
+-------------------------------+--------------------------------------+-------------------------------+ | created_on | snapshot_id | expire_on | |-------------------------------+------------------------------------------+---------------------------| | 2024-08-19 17:12:28.991 -0700 | 983e0b66-91eb-41cb-8a0b-037abfec1914 | 2024-08-20 17:12:28.991 -0700 | | 2024-08-19 18:12:33.824 -0700 | b5624ef0-1f35-452f-b132-09d8f0592e52 | 2024-08-20 18:12:33.824 -0700 | | 2024-08-19 19:12:43.830 -0700 | eca1a94a-fd40-46db-a2bc-4afba6a38c0a | 2024-08-20 19:12:43.830 -0700 | | 2024-08-19 20:12:45.446 -0700 | 8ee2fd7e-1afe-42e1-acd7-79582765a910 | 2024-08-20 20:12:45.446 -0700 | | 2024-08-19 21:12:55.305 -0700 | d38caf14-f8a5-4ba8-a248-8287e0cdcf40 | 2024-08-20 21:12:55.305 -0700 | +-------------------------------+--------------------------------------+-----------+-------------------+
Suchen Sie die ID des Schema-Snapshots, der in der Spalte
snapshot_id
wiederhergestellt werden soll:SHOW SNAPSHOTS IN SNAPSHOT SET s1_snapshots;
+-------------------------------+--------------------------------------+-------------------------------+ | created_on | snapshot_id | expire_on | |-------------------------------+--------------------------------------+-------------------------------| | 2024-08-19 17:12:28.991 -0700 | 0a0382e1-d265-46e9-b152-4c3b2b859e65 | 2024-08-20 17:12:28.991 -0700 | | 2024-08-19 18:12:33.824 -0700 | 8dbcf919-3393-4590-928f-5481d7f2502f | 2024-08-20 18:12:33.824 -0700 | | 2024-08-19 19:12:43.830 -0700 | 8ee2fd7e-1afe-42e1-acd7-79582765a910 | 2024-08-20 19:12:43.830 -0700 | | 2024-08-19 20:12:45.446 -0700 | bd729a79-01bc-444d-a550-adaaa31ab62f | 2024-08-20 20:12:45.446 -0700 | | 2024-08-19 21:12:55.305 -0700 | 9a8802c5-5fbd-4200-a09d-43e046103939 | 2024-08-20 21:12:55.305 -0700 | +-------------------------------+--------------------------------------+-------------------------------+
Suchen Sie die ID des Datenbank-Snapshots, der in der Spalte
snapshot_id
wiederhergestellt werden soll:SHOW SNAPSHOTS IN SNAPSHOT SET d1_snapshots;
+-------------------------------+--------------------------------------+-------------------------------+ | created_on | snapshot_id | expire_on | |-------------------------------+--------------------------------------+-------------------------------| | 2024-08-19 17:12:28.991 -0700 | 42435925-4e77-4b01-ba89-8163ac03e12f | 2024-08-20 17:12:28.991 -0700 | | 2024-08-19 18:12:33.824 -0700 | 29c2c1b9-6599-4f0b-87b8-d43377fd7c77 | 2024-08-20 18:12:33.824 -0700 | | 2024-08-19 19:12:43.830 -0700 | a4283984-a063-4415-acc4-0e3c19259fad | 2024-08-20 19:12:43.830 -0700 | | 2024-08-19 20:12:45.446 -0700 | ffe25397-64b9-4c5f-b061-23a1885dc2dc | 2024-08-20 20:12:45.446 -0700 | | 2024-08-19 21:12:55.305 -0700 | 28e12b8a-aab8-40a8-ae39-9a5a5f654d66 | 2024-08-20 21:12:55.305 -0700 | +-------------------------------+--------------------------------------+-------------------------------+
Stellen Sie den Snapshot für die Tabelle
t1
wieder her der am 19.08.2024 um 18:12:33 erstellt wurde:CREATE TABLE restored_t1 FROM SNAPSHOT SET t1_snapshots IDENTIFIER 'b5624ef0-1f35-452f-b132-09d8f0592e52';
Stellen Sie den Snapshot für das Schema
s1
wieder her, der am 19.08.2024 um 18:12:33 erstellt wurde:CREATE SCHEMA restored_s1 FROM SNAPSHOT SET s1_snapshots IDENTIFIER '8dbcf919-3393-4590-928f-5481d7f2502f';
Stellen Sie den Snapshot für die Datenbank
d1
wieder her, der am 19.08.2024 um 18:12:33 erstellt wurde:CREATE DATABASE restored_d1 FROM SNAPSHOT SET d1_snapshots IDENTIFIER '29c2c1b9-6599-4f0b-87b8-d43377fd7c77';
Einen Snapshot aus einem Snapshot-Set löschen¶
Bei jedem Snapshot-Set können Sie nur den ältesten Snapshot löschen, für den es keine gesetzliche Aufbewahrungsfrist gibt. Dazu geben Sie die Snapshot-ID an. Sie können die Snapshots suchen, die keine gesetzliche Aufbewahrungsfrist haben, indem Sie die is_under_legal_hold
-Eigenschaft überprüfen. Sie können den ältesten Snapshot suchen, indem Sie die created_on
-Eigenschaft überprüfen.
Bemerkung
Sie können keinen Snapshot aus einem Snapshot-Set löschen, wenn eine Snapshot-Richtlinie mit einer Aufbewahrungssperre mit diesem Snapshot-Set verbunden ist oder wenn auf diesen Snapshot eine gesetzliche Aufbewahrungsfrist angewendet wird.
Der Snapshot, den Sie aus dem Snapshot-Set löschen, muss der früheste Snapshot im Set sein.
Suchen Sie die ID des zu löschenden Tabellen-Snapshots in der Spalte
snapshot_id
in der folgenden Ausgabe. Durch die Sortierung in aufsteigender Reihenfolge in der Spaltecreated_on
wird der älteste Snapshot an die erste Stelle gesetzt. Sie könntenLIMIT 1
zum SELECT-Befehl hinzufügen, um nur die Zeile mit den Details des ältesten Snapshots zurückzugeben.SHOW SNAPSHOTS IN SNAPSHOT SET t1_snapshots ->> SELECT "created_on", "snapshot_id", "expire_on" FROM $1 WHERE "is_under_legal_hold" = 'N' ORDER BY "created_on";
+-------------------------------+--------------------------------------+-------------------------------+ | created_on | snapshot_id | expire_on | |-------------------------------+--------------------------------------+-------------------------------| | 2024-08-19 17:12:28.991 -0700 | 983e0b66-91eb-41cb-8a0b-037abfec1914 | 2024-08-20 17:12:28.991 -0700 | | 2024-08-19 18:12:33.824 -0700 | b5624ef0-1f35-452f-b132-09d8f0592e52 | 2024-08-20 18:12:33.824 -0700 | | 2024-08-19 19:12:43.830 -0700 | eca1a94a-fd40-46db-a2bc-4afba6a38c0a | 2024-08-20 19:12:43.830 -0700 | | 2024-08-19 20:12:45.446 -0700 | 8ee2fd7e-1afe-42e1-acd7-79582765a910 | 2024-08-20 20:12:45.446 -0700 | | 2024-08-19 21:12:55.305 -0700 | d38caf14-f8a5-4ba8-a248-8287e0cdcf40 | 2024-08-20 21:12:55.305 -0700 | +-------------------------------+--------------------------------------+-------------------------------+
Löschen Sie den
t1_snapshots
-Snapshot, der am 19.08.2024 um 17:12:28 unter Verwendung dersnapshot_id
erstellt wurde:ALTER SNAPSHOT SET t1_snapshots DELETE SNAPSHOT IDENTIFIER '983e0b66-91eb-41cb-8a0b-037abfec1914';
Suchen Sie die ID des zu löschenden Schema-Snapshots in der Spalte
snapshot_id
in der folgenden Ausgabe:SHOW SNAPSHOTS IN SNAPSHOT SET s1_snapshots ->> SELECT "created_on", "snapshot_id", "expire_on" FROM $1 ORDER BY "created_on";
+-------------------------------+--------------------------------------+-------------------------------+ | created_on | snapshot_id | expire_on | |-------------------------------+--------------------------------------+-------------------------------| | 2024-08-19 17:12:28.991 -0700 | 28e12b8a-aab8-40a8-ae39-9a5a5f654d66 | 2024-08-20 17:12:28.991 -0700 | | 2024-08-19 18:12:33.824 -0700 | 46a1e22a-8557-432f-a14c-1261a4ca2b34 | 2024-08-20 18:12:33.824 -0700 | | 2024-08-19 19:12:43.830 -0700 | 3e42fef6-b895-4055-a59f-179744d015d3 | 2024-08-20 19:12:43.830 -0700 | | 2024-08-19 20:12:45.446 -0700 | 7807d24e-285e-4741-b332-87c32bad5cb6 | 2024-08-20 20:12:45.446 -0700 | | 2024-08-19 21:12:55.305 -0700 | e022e619-ee83-45a0-b2b7-9007e284bdb3 | 2024-08-20 21:12:55.305 -0700 | +-------------------------------+--------------------------------------+-------------------------------+
Löschen Sie den
s1_snapshots
-Snapshot, der am 19.08.2024 um 17:12:28 unter Verwendung dersnapshot_id
erstellt wurde:ALTER SNAPSHOT SET s1_snapshots DELETE SNAPSHOT IDENTIFIER '28e12b8a-aab8-40a8-ae39-9a5a5f654d66';
Suchen Sie die ID des zu löschenden Datenbank-Snapshots in der Spalte
snapshot_id
in der folgenden Ausgabe:SHOW SNAPSHOTS IN SNAPSHOT SET d1_snapshots ->> SELECT "created_on", "snapshot_id", "expire_on" FROM $1 ORDER BY "created_on";
+-------------------------------+--------------------------------------+-------------------------------+ | created_on | snapshot_id | expire_on | |-------------------------------+--------------------------------------+-------------------------------| | 2024-08-19 17:12:28.991 -0700 | d3a77432-c98d-4969-91a9-fffae5dd655c | 2024-08-20 17:12:28.991 -0700 | | 2024-08-19 18:12:33.824 -0700 | 0a0382e1-d265-46e9-b152-4c3b2b859e65 | 2024-08-20 18:12:33.824 -0700 | | 2024-08-19 19:12:43.830 -0700 | 25e01ee0-ea9d-4bb7-af7f-f3fe87f9409e | 2024-08-20 19:12:43.830 -0700 | | 2024-08-19 20:12:45.446 -0700 | a12294f5-fc63-49cf-84f1-c7b72f7664af | 2024-08-20 20:12:45.446 -0700 | | 2024-08-19 21:12:55.305 -0700 | 28e12b8a-aab8-40a8-ae39-9a5a5f654d66 | 2024-08-20 21:12:55.305 -0700 | +-------------------------------+--------------------------------------+-------------------------------+
Löschen Sie den
d1_snapshots
-Snapshot, der am 19.08.2024 um 17:12:28 unter Verwendung dersnapshot_id
erstellt wurde:ALTER SNAPSHOT SET d1_snapshots DELETE SNAPSHOT IDENTIFIER 'd3a77432-c98d-4969-91a9-fffae5dd655c';
Versuchen Sie, einen neueren
d1_snapshots
-Snapshot zu löschen, der am 19.08.2024 um 21:12:55 erstellt wurde. Beachten Sie, wie Snowflake verhindert, dass Sie einen Snapshot löschen, der nicht der älteste im Snapshot-Set ist.ALTER SNAPSHOT SET d1_snapshots DELETE SNAPSHOT IDENTIFIER '28e12b8a-aab8-40a8-ae39-9a5a5f654d66';
Snapshot '28e12b8a-aab8-40a8-ae39-9a5a5f654d66' cannot be deleted as it is not the oldest active snapshot in the snapshot set D1_SNAPSHOTS.
Snapshot-Sets löschen¶
Sie können ein Snapshot-Set mit dem Befehl DROP SNAPSHOT SET löschen.
Bemerkung
Sie können ein Snapshot-Set, das eine Aufbewahrungssperre hat und nicht abgelaufene Snapshots enthält, nicht löschen. Sie können ein Snapshot-Set auch nicht löschen, wenn einer der dazugehörigen Snapshots eine gesetzliche Aufbewahrungsfrist besitzt.
Löschen Sie das Snapshot-Set t1_snapshots
:
DROP SNAPSHOT SET t1_snapshots;
Löschen Sie das Snapshot-Set s1_snapshots
:
DROP SNAPSHOT SET s1_snapshots;
Löschen Sie das Snapshot-Set d1_snapshots
:
DROP SNAPSHOT SET d1_snapshots;
Alle Snapshot-Sets suchen, die Backups einer bestimmten Tabelle enthalten¶
Das folgende Beispiel zeigt, wie Sie alle Snapshot-Sets suchen, die eine bestimmte Tabelle innerhalb eines bestimmten Schemas und einer bestimmten Datenbank enthalten. Der Befehl SHOW TABLES verwendet einen Pipe-Operator, um die Namen von Datenbank, Schema und Tabelle abzurufen und sie in Variablen zu speichern. Die Ausgabe von SHOW SNAPSHOT SETS wird gefiltert, um die Snapshot-Sets anzuzeigen, die die Datenbank, die die Tabelle enthält, oder das Schema, das die Tabelle enthält, oder die diese einzelne Tabelle enthält, sichern.
Die gefilterte Ausgabe von SHOW SNAPSHOT SETS zeigt, dass es zwei Datenbank-Snapshot-Sets für die Datenbank MY_BIG_IMPORTANT_DATABASE, ein Schema-Snapshot-Set für das Schema MY_BIG_IMPORTANT_DATABASE.PUBLIC und ein Tabellen-Snapshot-Set für die Tabelle MY_BIG_IMPORTANT_DATABASE.PUBLIC.MY_SMALL_SECONDARY_TABLE gibt.
SHOW TABLES IN SCHEMA public ->>
SET (dname, sname, tname) =
(SELECT "database_name", "schema_name", "name" FROM $1
WHERE "name" = 'MY_SMALL_SECONDARY_TABLE' AND "kind" = 'TABLE');
SHOW SNAPSHOT SETS ->> SELECT "object_kind", "name", "database_name", "schema_name", "object_name" FROM $1
WHERE ("object_kind" = 'TABLE' AND "database_name" = $dname AND "schema_name" = $sname AND "object_name" = $tname)
OR ("object_kind" = 'SCHEMA' AND "database_name" = $dname AND "object_name" = $sname)
OR ("object_kind" = 'DATABASE' AND "object_name" = $dname);
+-------------+------------------+---------------------------+-------------+---------------------------+
| object_kind | name | database_name | schema_name | object_name |
|-------------+------------------+---------------------------+-------------+---------------------------|
| DATABASE | DATABASE_BACKUP | MY_BIG_IMPORTANT_DATABASE | PUBLIC | MY_BIG_IMPORTANT_DATABASE |
| DATABASE | DATABASE_BACKUP2 | MY_BIG_IMPORTANT_DATABASE | PUBLIC | MY_BIG_IMPORTANT_DATABASE |
| SCHEMA | SCHEMA_BACKUP3 | MY_BIG_IMPORTANT_DATABASE | PUBLIC | PUBLIC |
| TABLE | TABLE_BACKUP2 | MY_BIG_IMPORTANT_DATABASE | PUBLIC | MY_SMALL_SECONDARY_TABLE |
+-------------+------------------+---------------------------+-------------+---------------------------+
Snapshots für eine Tabelle mit Abhängigkeiten erstellen¶
Die folgenden Beispiele zeigen, wie Sie einen Tabellen-Snapshot für eine Tabelle erstellen können, die auf eine Sequenz und einen Fremdschlüssel in einem anderen Schema verweist. Zur Vorbereitung erstellen wir das Schema other_schema
, das eine Sequenz und eine Tabelle enthält. Dann wird im Schema public
die Haupttabelle erstellt, die sich auf die Sequenz und die andere Tabelle bezieht.
USE DATABASE my_big_important_database;
CREATE SCHEMA other_schema;
USE SCHEMA other_schema;
CREATE SEQUENCE my_sequence;
CREATE TABLE my_dimension_table (id INT AUTOINCREMENT PRIMARY KEY);
USE SCHEMA public;
CREATE TABLE dependent_table
(
id INT DEFAULT my_big_important_database.other_schema.my_sequence.NEXTVAL PRIMARY KEY,
foreign_id INT,
FOREIGN KEY (foreign_id) REFERENCES my_big_important_database.other_schema.my_dimension_table(id)
);
SELECT GET_DDL('TABLE','dependent_table');
Die Ausgabe GET_DDL () zeigt die Referenzen an, die auf das andere Schema verweisen:
+-------------------------------------------+
| GET_DDL('TABLE','DEPENDENT_TABLE') |
|-------------------------------------------|
| create or replace TABLE DEPENDENT_TABLE ( |
| ID NUMBER(38,0) NOT NULL DEFAULT MY_BIG_IMPORTANT_DATABASE.OTHER_SCHEMA.MY_SEQUENCE.NEXTVAL,
| FOREIGN_ID NUMBER(38,0), |
| primary key (ID), |
| foreign key (FOREIGN_ID) references MY_BIG_IMPORTANT_DATABASE.OTHER_SCHEMA.MY_DIMENSION_TABLE(ID)
| ); |
+-------------------------------------------+
Als Nächstes erstellen wir das Snapshot-Set für die Tabelle und fügen einen Snapshot hinzu:
CREATE SNAPSHOT SET dependency_experiments FOR TABLE dependent_table;
ALTER SNAPSHOT SET dependency_experiments ADD SNAPSHOT;
SHOW SNAPSHOTS IN SNAPSHOT SET dependency_experiments;
Die Ausgabe SHOW SNAPSHOTS enthält den snapshot_id
-Wert, der für die Wiederherstellungsoperation verwendet werden soll:
+-------------------------------+--------------------------------------+------------------------+---------------------------+--------------+-----------+
| created_on | snapshot_id | snapshot_set_name | database_name | schema_name | expire_on |
|-------------------------------+--------------------------------------+------------------------+---------------------------+--------------+-----------|
| 2025-07-01 11:53:27.860 -0700 | 0fd44138-b571-449b-be0a-72779501f80e | DEPENDENCY_EXPERIMENTS | MY_BIG_IMPORTANT_DATABASE | OTHER_SCHEMA | NULL |
+-------------------------------+--------------------------------------+------------------------+---------------------------+--------------+-----------+
Wir stellen diese Tabelle unter einem neuen Namen wieder her und bestätigen, dass die wiederhergestellte Tabelle auf die Objekte im anderen Schema verweist:
CREATE TABLE restored_dependent_table FROM SNAPSHOT SET dependency_experiments
IDENTIFIER '0fd44138-b571-449b-be0a-72779501f80e';
SELECT GET_DDL('TABLE','restored_dependent_table');
+----------------------------------------------------+
| GET_DDL('TABLE','RESTORED_DEPENDENT_TABLE') |
|----------------------------------------------------|
| create or replace TABLE RESTORED_DEPENDENT_TABLE ( |
| ID NUMBER(38,0) NOT NULL DEFAULT MY_BIG_IMPORTANT_DATABASE.OTHER_SCHEMA.MY_SEQUENCE.NEXTVAL,
| FOREIGN_ID NUMBER(38,0), |
| foreign key (FOREIGN_ID) references MY_BIG_IMPORTANT_DATABASE.OTHER_SCHEMA.MY_DIMENSION_TABLE(ID),
| primary key (ID) |
| ); |
+----------------------------------------------------+
Um zu veranschaulichen, was passiert, wenn das referenzierte Objekt nicht mehr existiert, löschen wir die Sequenz und stellen dann die Tabelle aus demselben Snapshot wieder her:
DROP SEQUENCE my_big_important_database.other_schema.my_sequence;
CREATE TABLE OR REPLACE restored_dependent_table FROM SNAPSHOT SET dependency_experiments
IDENTIFIER '0fd44138-b571-449b-be0a-72779501f80e';
SELECT * FROM restored_dependent_table;
Das Abfragen der Tabelle funktioniert immer noch:
+----+------------+
| ID | FOREIGN_ID |
|----+------------|
+----+------------+
0 Row(s) produced. Time Elapsed: 0.129s
Allerdings schlagen Vorgänge wie GET_DDL(), DESCRIBE und INSERT fehl, weil sie von einer Sequenz abhängen, die nicht mehr existiert:
SELECT GET_DDL('TABLE','restored_dependent_table');
002073 (02000): SQL compilation error:
Sequence used as a default value in table 'MY_BIG_IMPORTANT_DATABASE.OTHER_SCHEMA.RESTORED_DEPENDENT_TABLE'
column 'ID' was not found or could not be accessed.
DESC TABLE restored_dependent_table;
+------------+--------------+--------+-------+----------------------------------------+-------------+------------+-------+------------+---------+-------------+----------------+
| name | type | kind | null? | default | primary key | unique key | check | expression | comment | policy name | privacy domain |
|------------+--------------+--------+-------+----------------------------------------+-------------+------------+-------+------------+---------+-------------+----------------|
| ID | NUMBER(38,0) | COLUMN | N | [sequence cannot be found or accessed] | Y | N | NULL | NULL | NULL | NULL | NULL |
| FOREIGN_ID | NUMBER(38,0) | COLUMN | Y | NULL | N | N | NULL | NULL | NULL | NULL | NULL |
+------------+--------------+--------+-------+----------------------------------------+-------------+------------+-------+------------+---------+-------------+----------------+
INSERT INTO restored_dependent_table (foreign_id) VALUES (2);
002073 (02000): SQL compilation error:
Sequence used as a default value in table 'MY_BIG_IMPORTANT_DATABASE.OTHER_SCHEMA.RESTORED_DEPENDENT_TABLE'
column 'ID' was not found or could not be accessed.
Snapshots für eine dynamische Tabelle erstellen¶
Eine dynamische Tabelle enthält immer einen Verweis auf eine andere Tabelle. Aus diesem Grund können Sie es vorziehen, für dynamische Tabellen Schema-Snapshots oder Datenbank-Snapshots zu verwenden, sodass die ursprüngliche Tabelle und die dynamische Tabelle in demselben Snapshot enthalten sein können.
Wenn Sie einen Tabellen-Snapshot für eine dynamische Tabelle erstellen, fügen Sie das Schlüsselwort DYNAMIC in den Befehl CREATE SNAPSHOT SET und in die CREATE TABLE ein, wenn Sie von einem Snapshot wiederherstellen. Im folgenden Beispiel wird die dynamische Tabelle sowie ein Tabellen-Snapshot-Set für diese Tabelle eingerichtet und der erste Snapshot erstellt:
CREATE DYNAMIC TABLE my_dynamic_table
TARGET_LAG = '1 minute'
WAREHOUSE = my_wh
AS SELECT * FROM my_base_table WHERE col1 IS NOT NULL;
CREATE SNAPSHOT SET dynamic_table_snapshots
FOR DYNAMIC TABLE my_dynamic_table;
ALTER SNAPSHOT SET dynamic_table_snapshots ADD SNAPSHOT;
Das folgende Beispiel zeigt, wie Sie die Snapshot-IDs für Snapshots ermitteln, die zu verschiedenen Zeitpunkten erstellt wurden. In diesem Fall ist der neueste Snapshot die erste Zeile im Resultset. Dann verwenden Sie die ID des Snapshots im Befehl CREATE DYNAMIC TABLE.
SHOW SNAPSHOTS IN SNAPSHOT SET dynamic_table_snapshots
->> SELECT "created_on", "snapshot_id" FROM $1
ORDER BY "created_on" DESC;
CREATE DYNAMIC TABLE restored_dynamic_table
FROM SNAPSHOT SET dynamic_table_snapshots
IDENTIFIER '<snapshot_id_from_SHOW_SNAPSHOTS_output>';
Tipp
Wenn Sie eine dynamische Tabelle aus einem Snapshot wiederherstellen, wird die neue Tabelle bei der ersten Aktualisierung von Snowflake automatisch initialisiert.
Gesetzliche Aufbewahrungsfristen hinzufügen und entfernen¶
Bevor Sie mit gesetzlichen Aufbewahrungsfristen für Snowflake-Snapshots arbeiten, sollten Sie sich über den Zweck und die Anforderungen informieren. Weitere Informationen dazu finden Sie unter Gesetzliche Aufbewahrungsfrist.
Angenommen, die Rechtsabteilung oder das Compliance-Team Ihrer Organisation sendet eine Anforderung zur Aufbewahrungsfrist, in der angegeben wird, welche Datentypen aufbewahrt werden müssen. In diesem Fall könnten Sie einem Prozess wie folgt folgen:
Sie arbeiten mit der Rechtsabteilung zusammen, um herauszufinden, wo die relevanten Daten gespeichert sind und welche Snapshot-Sets die zugehörigen Objekte enthalten.
Sie können für einen Snapshot ab einem entsprechenden Zeitrahmen eines Snapshot-Sets eine gesetzliche Aufbewahrungsfrist festlegen. Dadurch wird das automatische Ablaufen dieses Snapshots deaktiviert. Sie können für einen Snapshot, den Snowflake automatisch auf der Grundlage eines Zeitplans erstellt hat oder den Sie manuell erstellt haben, eine gesetzliche Aufbewahrungsfrist festlegen. Die gesetzliche Aufbewahrungsfrist gilt unabhängig davon, ob für das Snapshot-Set eine verknüpfte Snapshot-Richtlinie, ein Verfallszeitraum oder eine Aufbewahrungssperre vorhanden ist.
Sie führen Aktualisierungsoperationen für alle sekundären Konten durch, in die die Datenbank, die das Snapshot-Set enthält, repliziert ist. Auf diese Weise bleiben die gesetzliche Aufbewahrungsfrist und der zugehörige Snapshot bei allen Failover- und Failback-Operationen erhalten.
Sie verwenden die Zugriffssteuerung und Protokolle von Snowflake, um den Zugriff auf die Daten zu prüfen, die unter die gesetzliche Aufbewahrungsfrist fallen.
Sobald der Fall abgeschlossen ist und die Rechtsabteilung die Entfernung der gesetzlichen Aufbewahrungsfrist genehmigt hat, gibt ein Benutzer mit der Berechtigung APPLY LEGAL HOLD die gesetzliche Aufbewahrungsfrist frei. Dann wird die normale Automatisierung für das Ablaufen fortgesetzt.
Dieses Beispiel zeigt die Sequenz von SQL-Befehlen, die Sie während des Lebenszyklus einer gesetzlichen Aufbewahrungsfrist für einen Snapshot innerhalb eines bestimmten Snapshot-Sets verwenden können. Sie finden den Bezeichner des entsprechenden Snapshots durch Verwendung des Befehls SHOW SNAPSHOTS IN SNAPSHOT SET und Überprüfung der Spalte "is_under_legal_hold"
, um zu sehen, ob bereits eine gesetzliche Aufbewahrungsfrist vorhanden ist. Dann fügen Sie die gesetzliche Aufbewahrungsfrist zum spezifischen Snapshot hinzu oder entfernen sie.
USE ROLE <role_name>; -- use a role that has the APPLY LEGAL HOLD privilege
SHOW SNAPSHOTS IN SNAPSHOT SET <snapshot_set_name>
->> SELECT * FROM $1 WHERE "is_under_legal_hold" = 'N';
ALTER SNAPSHOT SET <snapshot_set_name>
MODIFY SNAPSHOT IDENTIFIER '<snapshot_identifier>'
ADD LEGAL HOLD;
USE ROLE <role_name>; -- use a role that has the APPLY LEGAL HOLD privilege
SHOW SNAPSHOTS IN SNAPSHOT SET <snapshot_set_name>
->> SELECT * FROM $1 WHERE "is_under_legal_hold" = 'Y';
ALTER SNAPSHOT SET <snapshot_set_name>
MODIFY SNAPSHOT IDENTIFIER '<snapshot_identifier>'
REMOVE LEGAL HOLD;
Tipp
Sie können auch das Vorhandensein von gesetzlichen Aufbewahrungsfristen überprüfen, indem Sie die Spalte "is_under_legal_hold"
in der Ansicht INFORMATION_SCHEMA.SNAPSHOTS oder ACCOUNT_USAGE.SNAPSHOTS abfragen.
Snapshots und Snapshot-Operationen überwachen¶
Sie können festlegen, welche Snapshot-bezogenen Objekte vorhanden sind, welche Eigenschaften sie haben und wie viel Speicherplatz sie verbrauchen, indem Sie die folgenden Ansichten abfragen.
Informationsschema:
Kontonutzung:
SQL-Referenzthemen¶
Snapshot-Richtlinie¶
Snapshot-Set¶
Snapshots¶
Sie führen keinen tatsächlichen CREATE SNAPSHOT-Befehl aus. Um einen neuen Snapshot zu erstellen, führen Sie ALTER SNAPSHOT SET … ADD SNAPSHOT aus. Oder wenn Sie das Snapshot-Set mit einer Snapshot-Richtlinie verknüpfen, die einen Zeitplan hat, erstellt Snowflake automatisch Snapshots im Snapshot-Set auf der Grundlage des angegebenen Zeitplans. Um einen älteren Snapshot zu löschen, führen Sie ALTER SNAPSHOT SET … DELETE SNAPSHOT aus. Für solche Operationen müssen Sie den Bezeichner für einen bestimmten Snapshot angeben. Sie können die Bezeichner des Snapshots zusammen mit anderen Informationen suchen, z. B. wann der jeweilige Snapshot erstellt wurde, indem Sie den folgenden Befehl verwenden.
Objekte aus Snapshots wiederherstellen¶
Sie verwenden die Syntax CREATE object_kind
FROM SNAPSHOT SET, um jede Art von Objekt aus dem entsprechenden Typ von Snapshot-Set wiederherzustellen.
Weitere Snapshots im Snapshot-Set verwenden das ursprüngliche Objekt, nicht das wiederhergestellte Objekt. Dies gilt auch dann, wenn Sie das wiederhergestellte Objekt in denselben Namen wie das ursprüngliche Objekt umbenennen. Wenn Sie nach einer Wiederherstellung dasselbe Snapshot-Set weiter verwenden möchten, stellen Sie das Objekt unter einem neuen Namen wieder her und übertragen dann die Daten zurück in das ursprüngliche Objekt.
Ansichten¶
Die folgenden Systemansichten enthalten Metadaten zu Snapshots, Snapshot-Sets und Snapshot-Richtlinien.
Informationsschema-Ansichten¶
Diese Ansichten im INFORMATION_SCHEMA-Schema enthalten Informationen über Snapshot-bezogene Objekte, die derzeit existieren:
Kontonutzungsansichten¶
Diese Ansichten im ACCOUNT_USAGE-Schema enthalten Informationen zu vorhandenen oder gelöschten Snapshot-bezogenen Objekten, zu den Operationen, die an den Snapshots durchgeführt wurden, und zu dem Speicher, den sie verwenden: