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> ]
Erforderliche Parameter¶
nameBezeichner 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 REPLACEWenn bereits eine Backup-Richtlinie mit diesem Namen existiert, löschen Sie diese und erstellen Sie eine neue. Diese Klausel schließt
IF NOT EXISTSaus (und umgekehrt).IF NOT EXISTSErstellt 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 REPLACEaus (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 LOCKGibt 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_zoneGibt 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.
LSteht 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.
/nGibt die n-te Instanz einer bestimmten Zeiteinheit an. Jeder Zeitanteil wird unabhängig berechnet. Wenn beispielsweise im Monatsfeld
4/3angegeben 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 MINUTEodernum MINUTESGibt ein Intervall (in Minuten) der Wartezeit zwischen den Backups an. Akzeptiert nur positive ganze Zahlen.
Unterstützt auch die Syntax
num M.
num HOURodernum HOURSGibt 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 MINUTESfestgelegt 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_integerGibt 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 keineSCHEDULE-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';
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';
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';