UNDROP SNAPSHOT

Nota

Esta operação não é atualmente coberta pelo nível de serviço definido na Política de suporte e Acordo de nível de serviço da Snowflake.

Restaura um instantâneo previamente removido de um volume de armazenamento em bloco. Após o Snowflake restaurar o instantâneo, os dados estarão disponíveis para uso.

Consulte também:

Gerenciamento de instantâneos, DROP SNAPSHOT, CREATE SNAPSHOT

Sintaxe

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

Parâmetros

name

Especifica o nome do instantâneo a ser restaurado. Se você especificar um nome de instantâneo, o comando restaurará o instantâneo descartado mais recentemente com esse nome.

Se o identificador contiver espaços ou caracteres especiais, toda a cadeia de caracteres deverá ser delimitada por aspas duplas. Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.

Para obter mais informações, consulte Requisitos para identificadores.

IDENTIFIER( id )

Especifica o identificador gerado pelo sistema para o instantâneo a ser restaurado.

Se você tiver vários instantâneos descartados com o mesmo nome, poderá consultar o Exibição BLOCK_STORAGE_SNAPSHOTS para obter o identificador gerado pelo sistema do instantâneo descartado que deseja restaurar. Em seguida, use a palavra-chave IDENTIFIER para especificar que deseja restaurar esse instantâneo. O instantâneo restaurado mantém o nome original.

Para um exemplo de restauração de um instantâneo por identificador gerado pelo sistema, consulte Exemplos.

Nota

Você só pode usar o identificador gerado pelo sistema com a palavra-chave IDENTIFIER() ao executar o comando UNDROP para notebooks, tabelas, instantâneos de armazenamento em bloco, esquemas e bancos de dados.

RENAME TO new_snapshot_name

Especifica o nome do instantâneo após a restauração. Isso permite restaurar o instantâneo com um nome diferente.

Requisitos de controle de acesso

A função usada para executar essa operação deve ter, no mínimo, os seguintes privilégios:

Privilégio

Objeto

Notas

OWNERSHIP

Instantâneo

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

O privilégio USAGE no banco de dados e no esquema pai é necessário para executar operações em qualquer objeto de um esquema. Observe que uma função com privilégio concedido em um esquema permite que essa função resolva o esquema. Por exemplo, uma função com privilégio CREATE concedido em um esquema pode criar objetos nesse esquema sem também ter USAGE concedido nesse esquema.

Para instruções sobre como criar uma função personalizada com um conjunto específico de privilégios, consulte Criação de funções personalizadas.

Para informações gerais sobre concessões de funções e privilégios para executar ações de SQL em objetos protegíveis, consulte Visão geral do controle de acesso.

Notas de uso

  • Os instantâneos só podem ser restaurados para o banco de dados e esquema onde o instantâneo estava localizado no momento da exclusão. Por exemplo, se você criar e descartar um instantâneo no esquema s1, depois alterar o esquema atual em sua sessão para s2 e tentar recuperar o instantâneo, ele será restaurado no esquema s1, não no esquema s2 atual.

  • Se um instantâneo com o mesmo nome já existir, UNDROP SNAPSHOT retornará um erro. Nesse caso, você tem a opção de especificar um nome diferente usando o parâmetro RENAME TO.

  • UNDROP SNAPSHOT conta com o recurso de Time Travel do Snowflake. Um objeto só pode ser restaurado se tiver sido excluído dentro do período de retenção de dados. O período de retenção padrão é de 24 horas. Após o término do período de retenção de dados, você não poderá restaurar o instantâneo.

Exemplos

Restaurar instantâneo usando o nome

O exemplo a seguir restaura um instantâneo descartado anteriormente com o nome example_snapshot:

UNDROP SNAPSHOT example_snapshot; 
Copy
+--------------------------------------------------+ | status | |--------------------------------------------------| | Snapshot EXAMPLE_SNAPSHOT successfully restored. | +--------------------------------------------------+ 

Restaurar instantâneo usando o ID

Restaure um instantâneo descartado por ID usando IDENTIFIER(). Você pode encontrar o ID do instantâneo específico que deseja restaurar usando a coluna snapshot_id na exibição Exibição BLOCK_STORAGE_SNAPSHOTS. Por exemplo, se você tiver vários instantâneos descartados com o nome MY_SNAPSHOT e quiser restaurar o penúltimo instantâneo MY_SNAPSHOT descartado, siga estas etapas:

  1. Na visualização do uso da conta LOCK_STORAGE_SNAPSHOTS, encontre o ID da tabela descartada:

    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

    Exemplo de saída:

    +-------------+---------------+---------------+-------------+-------------------------------+-------------------------------+ | 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. Restaure MY_SNAPSHOT pelo ID do instantâneo; para restaurar o penúltimo instantâneo excluído, use o ID do instantâneo 1 da saída da instrução anterior.

    Após executar a seguinte instrução, o instantâneo é restaurado com o nome original, MY_SNAPSHOT:

    UNDROP SNAPSHOT IDENTIFIER(1); 
    Copy