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