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> ]
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> ]
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> ]
Parâmetros obrigatórios¶
nameIdentificador 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_nameEspecifica o nome da tabela ou tabela dinâmica. Nesse caso, o conjunto de backups representa backups de uma única tabela.
FOR SCHEMA schema_nameEspecifica 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_nameEspecifica 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 REPLACESe 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 EXISTSCria 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_nameEspecifica 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;
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;
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;
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;