CREATE BACKUP POLICY

Erstellt eine Backup-Richtlinie. Sie verknüpfen die Richtlinie mit einem oder mehreren Backup-Sets. Die Einstellungen in der Richtlinie definieren den Zeitplan und die Verfallsfristen für jedes Backup-Set, das die Richtlinie verwendet.

Der Zeitplan bestimmt, wie oft Snowflake automatisch ein Backup erstellt und das resultierende Backup zum Backup-Set hinzufügt, das der Richtlinie unterliegt. Die Ablauffrist bestimmt, wie lange jedes Backup aufbewahrt wird, bevor Snowflake ihn automatisch aus dem zugehörigen Backup-Set löscht.

Tipp

Die Backup-Richtlinie ist für ein Backup-Set optional. Wenn Sie keine geplanten Backups, eine Aufbewahrungssperre oder einen Ablaufzeitraum benötigen, können Sie ein Backup-Set ohne Backup-Richtlinie erstellen. Sie können auch ALTER BACKUP SET verwenden, um eine Backup-Richtlinie später auf ein bestehendes Backup-Set anzuwenden, oder um die in der Backup-Richtlinie angegebenen geplanten Backups anzuhalten und fortzusetzen.

Siehe auch:

ALTER BACKUP POLICY, DROP BACKUP POLICY, SHOW BACKUP POLICIES, CREATE BACKUP SET ALTER BACKUP SET

Syntax

CREATE [ OR REPLACE ] BACKUP POLICY [ IF NOT EXISTS ] <name>
   [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
   [ WITH RETENTION LOCK ]
   [ SCHEDULE = '{ <num> MINUTE | <num> HOUR | USING CRON <expr> <time_zone> }' ]
   [ EXPIRE_AFTER_DAYS = <days_integer> ]
   [ COMMENT = <string> ]
Copy

Erforderliche Parameter

name

Bezeichner für die Backup-Richtlinie. Dieser muss für Ihr Konto eindeutig sein.

Darüber hinaus muss der Bezeichner mit einem Buchstaben 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 Informationen dazu finden Sie unter Anforderungen an Bezeichner.

Optionale Parameter

OR REPLACE

Wenn bereits eine Backup-Richtlinie mit diesem Namen existiert, löschen Sie diese und erstellen Sie eine neue. Diese Klausel schließt IF NOT EXISTS aus (und umgekehrt).

IF NOT EXISTS

Erstellt die Backup-Richtlinie nur, wenn es keine Backup-Richtlinie mit demselben Namen gibt. Wenn bereits eine Backup-Richtlinie vorhanden ist, gibt der Befehl eine Erfolgsmeldung zurück, obwohl er keine Auswirkungen hat. Diese Klausel schließt OR REPLACE aus (und umgekehrt).

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.

WITH RETENTION LOCK

Gibt die obligatorische Aufbewahrungsfrist für Backups an. Backups mit Aufbewahrungssperren können nicht gelöscht werden, selbst von einem berechtigten Benutzer. Weitere Informationen dazu finden Sie unter -Einschränkungen für ein Backup mit einer Aufbewahrungssperre.

Bemerkung

Nur ein Benutzer mit der Berechtigung APPLY BACKUP RETENTION LOCK kann eine Backup-Richtlinie mit Aufbewahrungssperre erstellen.

Wichtig

Das Anwenden einer Backup-Richtlinie mit einer Aufbewahrungssperre auf ein Backup-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 Backup-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 Backup-Set mit einer langen Ablauffrist festlegen, um unerwartete Speichergebühren für nicht löschbare Backup-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 Backups, auch solche mit Aufbewahrungssperren. Das Löschen einer Snowflake-Organisation erfordert die Einbeziehung des Snowflake-Supports. Das kann ein Administrator nicht versehentlich tun.

SCHEDULE = '{ num MINUTE | num HOUR | USING CRON expr time_zone }'

Gibt den Zeitplan für das Erstellen von Backups eines Objekts an.

Bemerkung

Der Mindestzeitplan für Backups muss 60 Minuten oder 1 Stunde betragen.

Jede Backup-Richtlinie muss eine oder beide Eigenschaften des Zeitplans und des Ablaufzeitraums haben. Weitere Informationen dazu finden Sie unter Backup-Richtlinie.

  • USING CRON expr time_zone

    Gibt einen Cron-Ausdruck und eine Zeitzone für den Zeitpunkt an, zu dem ein Backup eines Objekts erstellt wird. 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 Wochentag-Feld 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 das Backup für April, Juli und Oktober geplant (d. h. alle 3 Monate, beginnend ab dem 4. Monat des Jahres). In den Folgejahren wird derselbe Zeitplan beibehalten. Das heißt, das Backup 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. Das Ändern des TIMEZONE-Parameterwerts für das Konto (oder das Festlegen des Werts auf Benutzer- oder Sitzungsebene) führt nicht zur Änderung der Zeitzone des Backups.

    • Der Cron-Ausdruck definiert alle gültigen Ausführungszeiten für das Backup. Snowflake versucht, ein Backup auf der Grundlage dieses Zeitplans zu erstellen. Eine gültige Laufzeit wird jedoch übersprungen, wenn ein vorheriger Lauf 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 das Backup 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' ein Backup um 0AM (0:00 Uhr) an jedem 10. bis 20. Tag des Monats und auch an jedem Dienstag oder Donnerstag außerhalb dieser Tage.

  • num MINUTE oder num MINUTES

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

    Unterstützt auch die Syntax num M.

  • num HOUR oder num HOURS

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

    Unterstützt auch die Syntax num H.

Um Mehrdeutigkeiten zu vermeiden, wird in den folgenden Fällen eine Basisintervallzeit festgelegt:

  • Wenn das Objekt erstellt wird (mit CREATE BACKUP SET … WITH BACKUP POLICY).

  • Wenn ein anderes Intervall eingerichtet wird (mit ALTER BACKUP SET … APPLY BACKUP POLICY oder ALTER BACKUP POLICY … SET SCHEDULE).

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

EXPIRE_AFTER_DAYS = days_integer

Gibt die Anzahl der Tage bis zum Ablaufen des Backups an. Snowflake löscht automatisch abgelaufene Backups. Wenn dieser Parameter nicht angegeben wird, verbleiben die Backups im Backup-Set, bis sie manuell aus dem Satz gelöscht werden.

  • Der Mindestwert: 1.

  • Höchstwert: 3653 (etwa 10 Jahre), wenn Sie keine SCHEDULE-Klausel angeben.

Bemerkung

Jede Backup-Richtlinie muss eine oder beide Eigenschaften des Zeitplans und des Ablaufzeitraums haben. Weitere Informationen dazu finden Sie unter Backup-Richtlinie.

COMMENT = 'string_literal'

Gibt einen Kommentar für die Backup-Richtlinie an.

Standard: Kein Wert

Anforderungen an die Zugriffssteuerung

Eine Rolle, die zur Ausführung dieser Operation verwendet wird, muss mindestens die folgenden Berechtigungen haben:

Berechtigung

Anmerkungen

CREATE BACKUP POLICY

Die Rolle, mit der eine Backup-Richtlinie erstellt wird, muss über diese Berechtigung für das Schema verfügen, in dem die Richtlinie erstellt wird.

APPLY BACKUP RETENTION LOCK

Nur ein Benutzer mit dieser Berechtigung für das Konto kann eine Backup-Richtlinie mit Aufbewahrungssperre erstellen.

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

  • Time Travel und Failsafe-Aufbewahrungsfristen gelten nicht für Backups. Ein Backup kann nach Ablauf nicht wiederhergestellt werden.

  • 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.

Wichtig

Wenn auf die Backup-Richtlinie eine Aufbewahrungssperre angewendet wurde und sich im Backup-Set noch nicht abgelaufene Backups befinden, können Sie das Backup-Set nicht löschen. In diesem Fall müssen Sie warten, bis alle Backups im Set abgelaufen sind. Diese Einschränkung gilt auch für privilegierte Rollen wie ACCOUNTADMIN und für den Snowflake-Support. Aus diesem Grund sollten Sie vorsichtig sein, wenn Sie in einer Backup-Richtlinie eine Aufbewahrungssperre und einen langen Ablaufzeitpunkt angeben.

Beispiele

Erstellen Sie eine Backup-Richtlinie, die jede Stunde ein Backup erstellt und nach 90 Tagen abläuft:

CREATE BACKUP POLICY hourly_backup_policy
  SCHEDULE = '60 MINUTE'
  EXPIRE_AFTER_DAYS = 90
  COMMENT = 'Hourly backups that expire after 90 days';
Copy

Erstellen Sie eine Backup-Richtlinie mit einer Aufbewahrungssperre, die alle 24 Stunden ein Backup erstellt und nach 90 Tagen abläuft. Die Backups, die mit dieser Backup-Richtlinie erstellt wurden, können vor Ablauf des Zeitraums nicht geändert oder gelöscht werden:

CREATE BACKUP POLICY daily_backup_policy_with_lock
  WITH RETENTION LOCK
  SCHEDULE = '1440 MINUTE'
  EXPIRE_AFTER_DAYS = 90
  COMMENT = 'regulatory backups expire after 90 days with retention lock';
Copy

Erstellen Sie eine Backup-Richtlinie unter Verwendung eines Cron-Ausdrucks für den Zeitplan. Mit der folgenden Anweisung wird eine Richtlinie erstellt, die jeden Dienstag und Freitag der Woche um 23 Uhr Backups erstellt:

CREATE BACKUP POLICY twice_weekly_backup_policy
  SCHEDULE = 'USING CRON 0 23 * * 2,5 UTC'
  EXPIRE_AFTER_DAYS = 7
  COMMENT = 'Twice-weekly backups that expire after 7 days';
Copy