ALTER BACKUP SET¶
修改 备份 集的属性。此操作可以是以下操作之一:
创建新的备份,该备份将成为备份集的一部分。
从备份集中移除旧备份。
暂停或恢复备份策略指定的计划备份和计划备份删除。
将备份策略应用于尚无策略的备份集。
为备份集中的特定备份添加或移除法律保留。
重命名备份集。
为备份集指定或移除注释。
语法¶
ALTER BACKUP SET <name> ADD BACKUP
ALTER BACKUP SET <name> APPLY BACKUP POLICY <policy_name> [ FORCE ]
ALTER BACKUP SET <name> SUSPEND BACKUP [ { CREATION | EXPIRATION } ] POLICY
ALTER BACKUP SET <name> RESUME BACKUP [ { CREATION | EXPIRATION } ] POLICY
ALTER BACKUP SET <name> DELETE BACKUP IDENTIFIER '<backup_id>'
ALTER BACKUP SET <name> MODIFY BACKUP IDENTIFIER '<backup_id>' { ADD | REMOVE } LEGAL HOLD
ALTER BACKUP SET <name> RENAME TO <new_name>
ALTER BACKUP SET <name> SET COMMENT = '<string_literal>'
ALTER BACKUP SET <name> UNSET COMMENT
ALTER BACKUP SET <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]
ALTER BACKUP SET <name> UNSET TAG <tag_name> [ , <tag_name> ... ]
参数¶
name指定备份集的标识符。
如果标识符包含空格或特殊字符,则整个字符串必须放在双引号内。放在双引号内的标识符也区分大小写。
有关更多信息,请参阅 标识符要求。
ADD BACKUP在备份集中手动创建备份。如果备份策略不包括进行新备份的计划,则可以通过这种方式对备份集中包含的表、架构或数据库进行新备份。即使定期进行备份,您也可以随时在备份集中创建新的备份。
APPLY BACKUP POLICY policy_name [ FORCE ]指定要附加到备份集的备份策略。
FORCE 选项将覆盖备份集上的现有策略。仅当旧策略未设置保留锁时才能使用此选项。
重要
对备份集应用带保留锁定的备份策略是 不可逆操作。由于监管合规性所需的强保障要求,对备份集设置保留锁定后,您将无法撤销该锁定。Snowflake 支持部门也无法撤销此类保留锁定。在对具有较长有效期的备份集设置保留锁定前,请谨慎规划,以避免产生不可删除的备份集及其所含架构和数据库的意外存储费用。
如果删除了 Snowflake 组织,该组织将不再是 Snowflake 客户。此种情况下,Snowflake 会删除所有备份(包括带保留锁定的备份)。删除 Snowflake 组织需要 Snowflake 支持部门介入。管理员不可能意外执行此操作。
SUSPEND BACKUP [ { CREATION | EXPIRATION } ] POLICY暂停备份集中的备份策略。您可以暂停整个备份策略,或仅暂停创建或过期操作。如果您指定 SUSPEND BACKUP POLICY 时未包含 CREATION 或 EXPIRATION 关键字,Snowflake 将同时暂停策略的创建和过期功能。有关更多信息,请参阅 暂停备份集上的备份策略。
RESUME BACKUP [ { CREATION | EXPIRATION } ] POLICY恢复备份集中暂停的备份策略。您可以恢复整个备份策略,或仅恢复创建或过期操作。如果您指定 RESUME BACKUP POLICY 时未包含 CREATION 或 EXPIRATION 关键字,Snowflake 将同时恢复策略的创建和过期功能。有关更多信息,请参阅 恢复备份集上的备份策略。
DELETE BACKUP IDENTIFIER 'backup_id'按 ID 删除备份集中的备份。备份 ID 是一个 UUID 值,其格式由 UUID_STRING 函数返回。Snowflake 仅允许删除备份集中最旧的备份。有关更多信息,请参阅 从备份集中删除备份。
MODIFY BACKUP IDENTIFIER 'backup_id' { ADD | REMOVE } LEGAL HOLD为备份集中指定的备份添加或移除法律保留。有关 WORM 备份的法律保留的更多信息,请参阅 法律保留。有关使用此子句的示例,请参阅 添加和移除法律保留。
RENAME TO new_name指定备份集的新标识符;对于您的账户必须唯一。
有关更多信息,请参阅 标识符要求。
SET COMMENT = 'string_literal'将注释与备份集相关联。
TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]指定 标签 名称和标签字符串值。
标签值始终为字符串,标签值的最大字符数为 256。
有关在语句中指定标签的信息,请参阅 Tag quotas。
UNSET ...指定要为备份集取消设置的一个(或多个)属性和/或参数,这会将它们重置为默认值:
property_nameparam_nameCOMMENTTAG tag_name [ , tag_name ... ]
您可以使用单个 ALTER 语句重置多个属性/参数;但是,每个属性/参数 必须 用逗号分隔。此外,在重置属性/参数时,仅指定名称;无需指定任何值。
访问控制要求¶
权限 |
描述 |
|---|---|
OWNERSHIP |
用于修改备份集的角色必须具有备份集的 OWNERSHIP 权限。 |
APPLY BACKUP RETENTION LOCK |
如果应用于备份集的备份策略包含保留锁定,则用于应用该策略的角色必须对该账户具有此权限。 |
APPLY LEGAL HOLD |
此账户权限授予在备份中添加或移除法律保留的功能。只有 ADD LEGAL HOLD 和 REMOVE LEGAL HOLD 子句才需要此权限。默认情况下,该 ACCOUNTADMIN 角色具有此权限。 |
APPLY |
只有对备份策略具有此权限的用户才能使用带有 APPLY BACKUP POLICY 子句的 ALTER BACKUP SET 命令将备份策略添加到已存在的备份集中。 |
这些权限必须授予给当前活动的主角色,而不是次要角色。
有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。
使用说明¶
关于元数据:
注意
客户应确保在使用 Snowflake 服务时,不会将个人数据(用户对象除外)、敏感数据、出口管制数据或其他受监管数据作为元数据输入。有关更多信息,请参阅 Snowflake 中的元数据字段。
重要
如果备份策略应用了保留锁定,并且备份集中有任何未过期的备份,则您无法删除该备份集。在这种情况下,必须等待备份集中的所有备份过期。此限制甚至适用于特权角色(如 ACCOUNTADMIN)和 Snowflake 支持部门。因此,在备份策略中指定保留锁定和较长有效期时务必谨慎。
示例¶
手动向备份集 t1_backups 添加备份:
ALTER BACKUP SET t1_backups
ADD BACKUP;
更新备份集 t1_backups 上的备份策略:
ALTER BACKUP SET t1_backups
APPLY BACKUP POLICY daily_backup_policy;
暂停备份集 t1_backup 上的备份策略:
ALTER BACKUP SET t1_backups
SUSPEND BACKUP POLICY;
恢复备份集 t1_backups 上的备份策略:
ALTER BACKUP SET t1_backups
RESUME BACKUP POLICY;
将备份集 t1_backups 重命名为 table1_backups:
ALTER BACKUP SET t1_backups
RENAME TO table1_backups;
要查找与 ADD LEGAL HOLD 和 REMOVE LEGAL HOLD 子句一起使用的备份标识符,通常使用 SHOW BACKUPS 命令列出符合条件的备份及其创建时间。以下示例显示了如何列出相应的备份,为一个特定备份添加法律保留,随后移除该法律保留。替换您自己的角色名称、备份集名称和备份标识符。
USE ROLE my_legal_hold_role; -- use a role that has the APPLY LEGAL HOLD privilege
SHOW BACKUPS IN BACKUP SET my_db_backup_set
->> SELECT "created_on", "backup_id" FROM $1 WHERE "is_under_legal_hold" = 'N';
ALTER BACKUP SET my_db_backup_set
MODIFY BACKUP IDENTIFIER '790d1ee4-88b2-451f-9ccc-eacd1e93a134'
ADD LEGAL HOLD;
USE ROLE my_legal_hold_role; -- use a role that has the APPLY LEGAL HOLD privilege
SHOW BACKUPS IN BACKUP SET my_db_backup_set
->> SELECT "created_on", "backup_id" FROM $1 WHERE "is_under_legal_hold" = 'Y';
ALTER BACKUP SET my_db_backup_set
MODIFY BACKUP IDENTIFIER '790d1ee4-88b2-451f-9ccc-eacd1e93a134'
REMOVE LEGAL HOLD;