CREATE BACKUP SET¶
为表、架构或数据库创建 备份 集。备份集存在后,您可随时通过运行 ALTER BACKUP SET 命令向备份集添加新备份(备份)。如果您已在 备份策略 中定义计划并将该备份策略与备份集关联,Snowflake 也会自动向备份集添加备份。
每个备份集代表特定表、特定架构中对象,或特定数据库中对象的备份集合。通过这种方式,您可使备份变得非常精细或非常全面。而且,每个表、架构或数据库的备份可拥有各自独立的计划。
有关架构备份和数据库备份所包含对象类型的信息,请参阅 备份对象。
语法¶
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> ]
必填参数¶
name备份集的标识符;对于您的账户必须是唯一的。
此外,标识符必须以字母字符开头,且不能包含空格或特殊字符,除非整个标识符字符串放在双引号内(例如,
"My object")。放在双引号内的标识符也区分大小写。有关更多信息,请参阅 标识符要求。
FOR [ DYNAMIC ] TABLE table_name指定表或动态表的名称。在本例中,备份集代表单个表的备份。
FOR SCHEMA schema_name指定架构的名称。在本例中,备份集代表特定架构中所有表和其他对象的备份。
FOR DATABASE database_name指定数据库的名称。在本例中,备份集代表特定数据库中所有表、架构和其他对象的备份。
可选参数¶
OR REPLACE如果存在同名备份集,则删除现有备份策略并创建新的快备份策略。如果因保留锁定、法律保留和过期时间等备份策略规则导致无法删除备份集,则该命令将执行失败。此子句与
IF NOT EXISTS互斥。IF NOT EXISTS仅当不存在同名备份集时,才会创建备份集。如果备份集已存在,则该命令将返回成功消息(即使其未产生实际效果)。此子句与
OR REPLACE互斥。
TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )指定 标签 名称和标签字符串值。
标签值始终为字符串,标签值的最大字符数为 256。
有关在语句中指定标签的信息,请参阅 Tag quotas。
WITH BACKUP POLICY policy_name指定该集的备份策略名称。备份策略定义了备份集的属性,包括备份计划、每个备份的保留期,以及是否禁止在保留期结束前删除备份。
如果在 CREATE BACKUP SET 命令中省略此参数,后续可通过 ALTER BACKUP SET 命令应用策略。
重要
对备份集应用带保留锁定的备份策略是 不可逆操作。由于监管合规性所需的强保障要求,对备份集设置保留锁定后,您将无法撤销该锁定。Snowflake 支持部门也无法撤销此类保留锁定。在对具有较长有效期的备份集设置保留锁定前,请谨慎规划,以避免产生不可删除的备份集及其所含架构和数据库的意外存储费用。
如果删除了 Snowflake 组织,该组织将不再是 Snowflake 客户。此种情况下,Snowflake 会删除所有备份(包括带保留锁定的备份)。删除 Snowflake 组织需要 Snowflake 支持部门介入。管理员不可能意外执行此操作。
COMMENT = 'string_literal'指定备份集的注释。
默认:无值
访问控制要求¶
权限 |
备注 |
|---|---|
CREATE BACKUP SET |
用于创建备份集的角色必须在备份集创建的架构上被授予此权限。实际创建备份集还需要对备份集目标对象具备相应权限:表备份需要 SELECT 权限,架构备份或数据库备份需要 USAGE 权限。 |
SELECT |
为表创建备份集的角色必须对该表具有 SELECT 权限。 |
USAGE |
为架构或数据库创建备份集的角色必须对该架构或数据库具有 USAGE 权限。 |
APPLY |
用于在备份集上应用备份策略的角色必须对该备份策略拥有此权限。 |
APPLY BACKUP RETENTION LOCK |
对备份集应用带保留锁定的备份策略的角色必须在账户中拥有此权限。 |
这些权限必须授予给当前活动的主角色,而不是次要角色。
有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。
使用说明¶
关于元数据:
注意
客户应确保在使用 Snowflake 服务时,不会将个人数据(用户对象除外)、敏感数据、出口管制数据或其他受监管数据作为元数据输入。有关更多信息,请参阅 Snowflake 中的元数据字段。
重要
如果备份策略应用了保留锁定,并且备份集中有任何未过期的备份,则您无法删除该备份集。在这种情况下,必须等待备份集中的所有备份过期。此限制甚至适用于特权角色(如 ACCOUNTADMIN)和 Snowflake 支持部门。因此,在备份策略中指定保留锁定和较长有效期时务必谨慎。
示例¶
为表 t1 创建名为 t1_backups 的备份集:
CREATE BACKUP SET t1_backups
FOR TABLE t1;
使用备份策略为表 t1 创建备份集 t1_backups。
CREATE BACKUP SET t1_backups
FOR TABLE t1
WITH BACKUP POLICY hourly_backup_policy;
使用备份策略为架构 s1 创建备份集 s1_backups。
CREATE BACKUP SET s1_backups
FOR SCHEMA s1
WITH BACKUP POLICY hourly_backup_policy;
使用备份策略,为数据库 d1 创建备份集 d1_backups:
CREATE BACKUP SET d1_backups
FOR DATABASE d1
WITH BACKUP POLICY hourly_backup_policy;