CREATE BACKUP SET

Cria um conjunto de backups para uma tabela, um esquema ou um banco de dados. Uma vez que o conjunto de backup existe, é possível adicionar um novo backup (backup) ao conjunto de backup a qualquer momento executando um comando ALTER BACKUP SET. O Snowflake também adiciona backups ao conjunto de backup automaticamente, se você definiu um cronograma em uma política de backup e associou essa política de backup ao conjunto de backup.

Cada conjunto de backups representa um conjunto de backups para uma tabela específica, ou os objetos em um esquema específico, ou os objetos em um banco de dados específico. Dessa forma, você pode tornar seus backups muito granulares ou muito abrangentes. E os backups para cada tabela, esquema ou banco de dados podem ter seus próprios cronogramas independentes.

Para os tipos de objetos que estão incluídos nos backups de esquema e backups de banco de dados, consulte Objetos de backup.

Consulte também:

ALTER BACKUP SET, DROP BACKUP SET, SHOW BACKUP SETS, CREATE BACKUP POLICY

Sintaxe

CREATE [ OR REPLACE ] BACKUP SET [ IF NOT EXISTS ] <name>
   FOR [ DYNAMIC ] TABLE <table_name>
   [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
   [ WITH BACKUP POLICY <policy_name> ]
   [ COMMENT = <string> ]
Copy
CREATE [ OR REPLACE ] BACKUP SET [ IF NOT EXISTS ] <name>
  FOR SCHEMA <schema_name>
   [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
   [ WITH BACKUP POLICY <policy_name> ]
   [ COMMENT = <string> ]
Copy
CREATE [ OR REPLACE ] BACKUP SET [ IF NOT EXISTS ] <name>
  FOR DATABASE <database_name>
   [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
   [ WITH BACKUP POLICY <policy_name> ]
   [ COMMENT = <string> ]
Copy

Parâmetros obrigatórios

name

Identificador do conjunto de backups. Deve ser exclusivo para sua conta.

Além disso, o identificador deve começar com um caractere alfabético e não pode conter espaços ou caracteres especiais, a menos que toda a cadeia de caracteres do identificador esteja entre aspas duplas (por exemplo, "My object"). Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.

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

FOR [ DYNAMIC ] TABLE table_name

Especifica o nome da tabela ou tabela dinâmica. Nesse caso, o conjunto de backups representa backups de uma única tabela.

FOR SCHEMA schema_name

Especifica o nome do esquema. Nesse caso, o conjunto de backups representa backups de todas as tabelas e outros objetos em um esquema específico.

FOR DATABASE database_name

Especifica o nome do banco de dados. Nesse caso, o conjunto de backups representa backups de todas as tabelas, esquemas e outros objetos em um banco de dados específico.

Parâmetros opcionais

OR REPLACE

Se já existir um conjunto de backups com esse nome, exclua-o e crie um novo. Se o conjunto de backups não puder ser excluído devido às regras de política de backups para bloqueios de retenção, suspensões legais e tempos de expiração, o comando falhará. Esta cláusula é mutuamente exclusiva com IF NOT EXISTS.

IF NOT EXISTS

Cria o conjunto de backup somente se não houver um conjunto de backup com o mesmo nome. Se já existir um conjunto de backups, o comando retornará uma mensagem de sucesso, mesmo que não tenha efeito. Esta cláusula é mutuamente exclusiva com OR REPLACE.

TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )

Especifica o nome da tag e o valor da cadeia de caracteres dela.

O valor de tag é sempre uma cadeia de caracteres, e o número máximo de caracteres do valor da tag é 256.

Para obter informações sobre como especificar tags em uma instrução, consulte Tag quotas.

WITH BACKUP POLICY policy_name

Especifica o nome da política de backups para o conjunto. A política de backups define propriedades do conjunto de backups, como o agendamento de backups, o período de retenção para cada backup e se é necessário evitar que os backups sejam removidos antes do fim do período de retenção.

Se você omitir este parâmetro do comando CREATE BACKUP SET, poderá aplicar uma política mais tarde com o comando ALTER BACKUP SET.

Importante

Aplicar uma política de backup com um bloqueio de retenção a um conjunto de backup é irreversível. Devido às garantias rigorosas necessárias para a conformidade regulatória, depois de inserir um bloqueio de retenção em um conjunto de backups, não será possível revogar o bloqueio. O suporte Snowflake também não pode revogar esse bloqueio de retenção. Planeje com cuidado antes de definir um bloqueio de retenção em um conjunto de backups com um longo período de expiração, para evitar cobranças inesperadas de armazenamento para conjuntos de backups não excluíveis e para os esquemas e bancos de dados que os contêm.

Se uma organização Snowflake for excluída, ela deixará de ser um cliente Snowflake. Nesse caso, o Snowflake exclui todos os backups, incluindo aqueles com bloqueios de retenção. A exclusão de uma organização Snowflake requer o envolvimento do suporte Snowflake. Não é algo que um administrador possa fazer por acidente.

COMMENT = 'string_literal'

Especifica um comentário para o conjunto de backups.

Padrão: sem valor

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

Notas

CREATE BACKUP SET

A função usada para criar um conjunto de backups deve ter esse privilégio concedido no esquema no qual o conjunto de backups é criado. Para realmente criar o conjunto de backup, também é necessário o privilégio apropriado no objeto que é o sujeito do conjunto de backup: SELECT para um backup de tabela ou USAGE para um backup de esquema ou backup de banco de dados.

SELECT

A função usada para criar um conjunto de backups para uma tabela deve ter o privilégio SELECT nessa tabela.

USAGE

A função usada para criar um conjunto de backups para um esquema ou banco de dados deve ter o privilégio USAGE nesse esquema ou banco de dados.

APPLY

A função usada para aplicar uma política de backup em um conjunto de backup deve ter este privilégio na política de backup.

APPLY BACKUP RETENTION LOCK

A função usada para aplicar uma política de backup com bloqueio de retenção em um conjunto de backups deve ter esse privilégio na conta.

Esses privilégios são exigidos na função primária atualmente ativa, não em uma função secundária.

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

Em relação aos metadados:

Atenção

Os clientes devem garantir que nenhum dado pessoal (exceto para um objeto do usuário), dados sensíveis, dados controlados por exportação ou outros dados regulamentados sejam inseridos como metadados ao usar o serviço Snowflake. Para obter mais informações, consulte Campos de metadados no Snowflake.

Importante

Se a política de backup tiver um bloqueio de retenção aplicado a ela e houver algum backup não expirado no conjunto de backup, você não poderá excluir o conjunto de backup. Nesse caso, você deve aguardar até que todos os backups no conjunto expirem. Esta restrição aplica-se até mesmo a funções privilegiadas como ACCOUNTADMIN, e para suporte Snowflake. Por esse motivo, tenha cuidado ao especificar o bloqueio de retenção e um longo período de expiração em uma política de backup.

Exemplos

Criação de um conjunto de backup chamado t1_backups para a tabela t1:

CREATE BACKUP SET t1_backups
  FOR TABLE t1;
Copy

Criação de um conjunto de backup t1_backups para a tabela t1 com uma política de backup:

CREATE BACKUP SET t1_backups
  FOR TABLE t1
  WITH BACKUP POLICY hourly_backup_policy;
Copy

Criação de um conjunto de backup s1_backups para o esquema s1 com uma política de backup:

CREATE BACKUP SET s1_backups
  FOR SCHEMA s1
  WITH BACKUP POLICY hourly_backup_policy;
Copy

Criação de um conjunto de backup d1_backups para o banco de dados d1 com uma política de backup:

CREATE BACKUP SET d1_backups
  FOR DATABASE d1
  WITH BACKUP POLICY hourly_backup_policy;
Copy