UNDROP-SNAPSHOT¶
Bemerkung
Diese Operation fällt derzeit nicht unter den Service Level, der in Support-Richtlinie und dem Service Level Agreement von Snowflake festgelegt ist.
Stellt einen zuvor entfernten Snapshot eines Blockspeicher-Volumes wieder her. Nachdem Snowflake den Snapshot wiederhergestellt hat, stehen die Daten für die Verwendung zur Verfügung.
- Siehe auch:
Syntax¶
UNDROP SNAPSHOT { <name> | IDENTIFIER( <id> ) }
[ RENAME TO <new_snapshot_name> ];
Parameter¶
nameGibt den Namen des Snapshots an, der wiederhergestellt werden soll. Wenn Sie einen Snapshot-Namen angeben, stellt der Befehl den zuletzt gelöschten Snapshot mit diesem Namen wieder her.
Wenn der Bezeichner Leerzeichen oder Sonderzeichen enthält, muss die gesamte Zeichenfolge in doppelte Anführungszeichen gesetzt werden. Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß- und Kleinschreibung zu beachten.
Weitere Informationen dazu finden Sie unter Anforderungen an Bezeichner.
IDENTIFIER( id )Gibt den vom System generierten Bezeichner für den Snapshot an, der wiederhergestellt werden soll.
Wenn Sie mehrere gelöschte Snapshots mit demselben Namen haben, können Sie die Ansicht BLOCK_STORAGE_SNAPSHOTS abfragen, um den vom System generierten Bezeichner des gelöschten Snapshots zu erhalten, den Sie wiederherstellen möchten. Verwenden Sie dann das IDENTIFIER-Schlüsselwort, um anzugeben, dass Sie diesen Snapshot wiederherstellen möchten. Der wiederhergestellte Snapshot behält seinen ursprünglichen Namen.
Ein Beispiel für das Wiederherstellen eines Snapshots durch einen vom System generierten Bezeichner finden Sie unter Beispiele.
Bemerkung
Sie können den vom System generierten Bezeichner nur mit dem Schlüsselwort IDENTIFIER() verwenden, wenn Sie den Befehl UNDROP für Notebooks, Tabellen, Blockspeicher-Snapshots, Schemas und Datenbanken ausführen.
RENAME TO new_snapshot_nameGibt den Namen für den Snapshot an, nachdem er wiederhergestellt wurde. Auf diese Weise können Sie den Snapshot unter einem anderen Namen wiederherstellen.
Anforderungen an die Zugriffssteuerung¶
Eine Rolle, die zur Ausführung dieser Operation verwendet wird, muss mindestens die folgenden Berechtigungen haben:
Berechtigung |
Objekt |
Anmerkungen |
|---|---|---|
OWNERSHIP |
Snapshot |
OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege). |
USAGE-Berechtigung für die übergeordnete Datenbank und das Schema ist erforderlich, um Operationen an einem beliebigen Objekt in einem Schema durchzuführen. Beachten Sie, dass eine Rolle, die eine beliebige Berechtigung für ein Schema erhalten hat, es dieser Rolle erlaubt, das Schema aufzulösen. Zum Beispiel kann eine Rolle, der die CREATE-Berechtigung für ein Schema gewährt wurde, Objekte in diesem Schema erstellen, ohne auch USAGE für dieses Schema gewährt bekommen zu haben.
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¶
Snapshots können nur in der Datenbank und dem Schema wiederhergestellt werden, in denen sich der Snapshot zum Zeitpunkt des Löschens befand. Wenn Sie beispielsweise einen Snapshot im Schema
s1erstellen und löschen und das aktuelle Schema in Ihrer Sitzung ins2ändern und versuchen, den Snapshot wiederherzustellen, wird der Snapshot im Schemas1, und nicht im aktuellen Schemas2, wiederhergestellt.Wenn bereits ein Snapshot mit demselben Namen existiert, gibt UNDROP SNAPSHOT einen Fehler zurück. In diesem Fall haben Sie die Möglichkeit, mithilfe des Parameters
RENAME TOeinen anderen Namen anzugeben.UNDROP SNAPSHOT stützt sich auf das Snowflake-Feature Time Travel. Ein Objekt kann nur wiederhergestellt werden, wenn es innerhalb der Datenaufbewahrungsfrist gelöscht wurde. Die standardmäßige Aufbewahrungsfrist beträgt 24 Stunden. Nachdem die Datenaufbewahrungsfrist abgelaufen ist, können Sie den Snapshot nicht mehr wiederherstellen.
Beispiele¶
Wiederherstellen des Snapshots anhand des Namens¶
Das folgende Beispiel stellt einen zuvor gelöschten Snapshot mit dem Namen example_snapshot wieder her:
UNDROP SNAPSHOT example_snapshot;
+--------------------------------------------------+
| status |
|--------------------------------------------------|
| Snapshot EXAMPLE_SNAPSHOT successfully restored. |
+--------------------------------------------------+
Wiederherstellen des Snapshots anhand der ID¶
Stellen Sie einen gelöschten Snapshots anhand der ID mithilfe von IDENTIFIER() wieder her. Sie finden die Snapshot-ID des spezifischen Snapshots, der wiederhergestellt werden soll, indem Sie die Spalte snapshot_id in der Ansicht Ansicht BLOCK_STORAGE_SNAPSHOTS verwenden. Wenn Sie beispielsweise mehrere gelöschte Snapshots mit dem Namen MY_SNAPSHOT haben und den vorletzten gelöschten Snapshot MY_SNAPSHOT wiederherstellen möchten, gehen Sie wie folgt vor:
Suchen Sie die Tabellen-ID der gelöschten Tabelle in der Account Usage-Ansicht LOCK_STORAGE_SNAPSHOTS:
SELECT snapshot_id, snapshot_name, database_name, schema_name, created_on, deleted_on FROM SNOWFLAKE.ACCOUNT_USAGE.BLOCK_STORAGE_SNAPSHOTS WHERE database_name = 'TUTORIAL_DB' AND schema_name = 'DATA_SCHEMA' AND snapshot_name = 'MY_SNAPSHOT' AND deleted_on IS NOT NULL ORDER BY deleted_on;
Beispielausgabe:
+-------------+---------------+---------------+-------------+-------------------------------+-------------------------------+ | SNAPSHOT_ID | SNAPSHOT_NAME | DATABASE_NAME | SCHEMA_NAME | CREATED_ON | DELETED_ON | |-------------+---------------+---------------+-------------+-------------------------------+-------------------------------| | 1 | MY_SNAPSHOT | TUTORIAL_DB | DATA_SCHEMA | 2025-09-06 09:51:47.131 -0700 | 2025-09-15 14:21:49.683 -0700 | +-------------+---------------+---------------+-------------+-------------------------------+-------------------------------+
Stellen Sie
MY_SNAPSHOTanhand der Snapshot-ID wieder her; um den vorletzten gelöschten Snapshot wiederherzustellen, verwenden Sie die Snapshot-ID 1 aus der Ausgabe der vorherigen Anweisung.Nachdem Sie die folgende Anweisung ausgeführt haben, wird der Snapshot unter seinem ursprünglichen Namen
MY_SNAPSHOTwiederhergestellt:UNDROP SNAPSHOT IDENTIFIER(1);