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:

Verwalten von Snapshots, DROP SNAPSHOT, CREATE SNAPSHOT

Syntax

UNDROP SNAPSHOT { <name> | IDENTIFIER( <id> ) }
 [ RENAME TO <new_snapshot_name> ];
Copy

Parameter

name

Gibt 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_name

Gibt 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 s1 erstellen und löschen und das aktuelle Schema in Ihrer Sitzung in s2 ändern und versuchen, den Snapshot wiederherzustellen, wird der Snapshot im Schema s1, und nicht im aktuellen Schema s2, 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 TO einen 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;
Copy
+--------------------------------------------------+
| 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:

  1. 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;
    
    Copy

    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 |
    +-------------+---------------+---------------+-------------+-------------------------------+-------------------------------+
    
  2. Stellen Sie MY_SNAPSHOT anhand 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_SNAPSHOT wiederhergestellt:

    UNDROP SNAPSHOT IDENTIFIER(1);
    
    Copy