UNDROP SNAPSHOT¶
Note
Cette opération n’est actuellement pas couverte par le niveau de service défini dans Politique de support et accord de niveau de service de Snowflake.
Restaure un instantané précédemment supprimé d’un volume de stockage en bloc. Une fois que Snowflake a restauré l’instantané, les données sont disponibles pour être utilisées.
- Voir aussi :
Syntaxe¶
UNDROP SNAPSHOT { <name> | IDENTIFIER( <id> ) }
[ RENAME TO <new_snapshot_name> ];
Paramètres¶
nameSpécifie le nom de l’instantané à restaurer. Si vous spécifiez un nom d’instantané, la commande restaure l’instantané le plus récent portant ce nom.
Si l’identificateur contient des espaces ou des caractères spéciaux, toute la chaîne doit être délimitée par des guillemets doubles. Les identificateurs entre guillemets doubles sont également sensibles à la casse.
Pour plus d’informations, voir Exigences relatives à l’identificateur.
IDENTIFIER( id )Spécifie l’identificateur généré par le système pour l’instantané à restaurer.
Si vous avez plusieurs instantanés supprimés portant le même nom, vous pouvez interroger Vue BLOCK_STORAGE_SNAPSHOTS pour obtenir l’identificateur généré par le système de l’instantané supprimé que vous souhaitez restaurer. Ensuite, utilisez le mot-clé IDENTIFIER pour spécifier que vous souhaitez restaurer cet instantané. L’instantané restauré conserve son nom d’origine.
Pour un exemple de restauration d’un instantané par un identificateur généré par le système, voir Exemples.
Note
Vous ne pouvez utiliser l’identificateur généré par le système qu’avec le mot-cléIDENTIFIER() lors de l’exécution de la commande UNDROP pour les notebooks, les tables, les instantanés de stockage en bloc, les schémas et les bases de données.
RENAME TO new_snapshot_nameSpécifie le nom de l’instantané après sa restauration. Cela vous permet de restaurer l’instantané sous un nom différent.
Exigences en matière de contrôle d’accès¶
Un rôle utilisé pour exécuter cette opération doit au minimum disposer des privilèges suivants :
Privilège |
Objet |
Remarques |
|---|---|---|
OWNERSHIP |
Instantané |
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). |
Le privilège USAGE relatif à la base de données et au schéma parents est exigé pour effectuer des opérations sur tout objet d’un schéma. Notez qu’un rôle doté d’un privilège quelconque sur un schéma permet à ce rôle de résoudre le schéma. Par exemple, un rôle doté du privilège CREATE sur un schéma peut créer des objets sur ce schéma sans également avoir le privilège USAGE attribué sur ce schéma.
Pour obtenir des instructions sur la création d’un rôle personnalisé avec un ensemble spécifique de privilèges, voir Création de rôles personnalisés.
Pour des informations générales sur les rôles et les privilèges accordés pour effectuer des actions SQL sur des objets sécurisables, voir Aperçu du contrôle d’accès.
Notes sur l’utilisation¶
Les instantanés peuvent uniquement être restaurés dans la base de données et le schéma dans lesquels l’instantané se trouve au moment de la suppression. Par exemple, si vous créez et supprimez un instantané dans le schéma
s1, puis choisissez comme schéma actuel dans votre sessions2et tentez d’annuler la suppression de l’instantané, celui-ci sera restauré dans le schémas1, pas dans le schéma actuels2.Si un instantané portant le même nom existe déjà, UNDROP SNAPSHOT renvoie une erreur. Dans ce cas, vous avez la possibilité de spécifier un nom différent en utilisant le paramètre
RENAME TO.UNDROP SNAPSHOT s’appuie sur la fonctionnalité Time Travel de Snowflake. Un objet ne peut être restauré que s’il a été supprimé au cours de la période de conservation des données. La période de conservation par défaut est de 24 heures. Une fois la période de conservation des données terminée, vous ne pouvez pas restaurer l’instantané.
Exemples¶
Restaurer l’instantané à l’aide d’un nom¶
L’exemple suivant restaure un instantané précédemment supprimé nommé example_snapshot :
UNDROP SNAPSHOT example_snapshot;
+--------------------------------------------------+
| status |
|--------------------------------------------------|
| Snapshot EXAMPLE_SNAPSHOT successfully restored. |
+--------------------------------------------------+
Restaurer l’instantané à l’aide d’un ID¶
Restaurer un instantané supprimé par ID avec IDENTIFIER(). Vous pouvez trouver ID de l’instantané spécifique à restaurer en utilisant la colonne snapshot_id dans la vue Vue BLOCK_STORAGE_SNAPSHOTS. Par exemple, si vous avez plusieurs instantanés supprimés nommés MY_SNAPSHOT et que vous souhaitez restaurer l’avant-dernier instantané supprimé MY_SNAPSHOT, procédez comme suit :
Recherchez l’ID de la table supprimée dans la vue LOCK_STORAGE_SNAPSHOTS d’utilisation du compte :
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;
Exemple de sortie :
+-------------+---------------+---------------+-------------+-------------------------------+-------------------------------+ | 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 | +-------------+---------------+---------------+-------------+-------------------------------+-------------------------------+
Annulez la suppression de
MY_SNAPSHOTpar ID d’instantané ; pour restaurer l’avant-dernier instantané supprimé, utilisez l’ID d’instantané 1 de la sortie de l’instruction précédente.Après avoir exécuté l’instruction suivante, l’instantané est restauré avec son nom d’origine,
MY_SNAPSHOT:UNDROP SNAPSHOT IDENTIFIER(1);