ALTER BACKUP POLICY

修改 备份 策略的属性。支持以下变更:

  • 重命名策略。

  • 添加或更新策略的注释。

  • 更改策略的计划和有效期设置。该计划决定了 Snowflake 自动进行备份的频率,并将生成的备份添加到受策略管理的备份集中。有效期决定了在 Snowflake 自动将备份从关联的备份集中删除之前每个备份的保留时间。

  • 取消设置策略的属性,使其恢复为默认值。

另请参阅:

CREATE BACKUP POLICYDROP BACKUP POLICYSHOW BACKUP POLICIES

语法

ALTER BACKUP POLICY <name> RENAME TO <new_name>

ALTER BACKUP POLICY <name> SET
  [ COMMENT = '<string_literal>' ]
  [ SCHEDULE = '{ <num> MINUTE | <num> HOUR | USING CRON <expr> <time_zone> }' ]
  [ EXPIRE_AFTER_DAYS = <days_integer> ]

ALTER BACKUP POLICY <name> UNSET { COMMENT | SCHEDULE | EXPIRE_AFTER_DAYS }

ALTER BACKUP POLICY <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]

ALTER BACKUP POLICY <name> UNSET TAG <tag_name> [ , <tag_name> ... ]
Copy

参数

name

指定备份策略的标识符。

如果标识符包含空格或特殊字符,则整个字符串必须放在双引号内。放在双引号内的标识符也区分大小写。

有关更多信息,请参阅 标识符要求

RENAME TO new_name

指定备份策略的新标识符;对于您的账户必须唯一。

有关更多信息,请参阅 标识符要求

SET...

指定要为备份策略设置的一个或多个属性(属性之间用空格、逗号或换行符分隔)。

COMMENT = 'string_literal'

指定备份策略的注释。

SCHEDULE = '{ num MINUTE | num HOUR | USING CRON expr time_zone }'

指定创建对象备份的计划。

备注

备份的最短计划为 60 分钟(1 小时)。

每个策略都必须包含 SCHEDULE 子句、EXPIRE_AFTER_DAYS 子句或两者。

  • USING CRON expr time_zone

    为创建对象备份的时间点指定 cron 表达式和时区。支持标准 cron 实用程序语法的子集。

    有关时区列表,请参阅 ` tz 数据库时区列表 <https://en.wikipedia.org/wiki/List_of_tz_database_time_zones (link removed)>`_ (在维基百科中)。

    cron 表达式由以下字段组成:

    # __________ minute (0-59)
    # | ________ hour (0-23)
    # | | ______ day of month (1-31, or L)
    # | | | ____ month (1-12, JAN-DEC)
    # | | | | __ day of week (0-6, SUN-SAT, or L)
    # | | | | |
    # | | | | |
      * * * * *
    

    支持以下特殊字符:

    *

    通配符。指定字段的任何出现。

    L

    代表“last”。在星期几字段中使用时,它允许您指定结构,例如给定月份的“最后一个星期五”(“5L”)。在日期字段中,它指定该月的最后一天。

    /n

    指示给定时间单位的第 n 个实例。每个时间量子都是独立计算的。例如,如果在月份字段中指定 4/3,则备份将安排在 4 月、7 月和 10 月执行(即从一年中的第 4 个月开始,每 3 个月一次)。在随后的几年中保持相同的计划。也就是说,备份 不会 安排在 1 月(10 月运行后 3 个月)运行。

    备注

    • cron 表达式当前仅根据指定的时区进行计算。更改账户的 TIMEZONE 参数值(或在用户或会话级别设置该值):emph:不会 更改备份的时区。

    • cron 表达式定义备份的所有 :emph:` 有效 ` 运行时间。Snowflake 尝试根据此计划创建备份;但是,如果在下一个有效运行时间开始之前未完成上一次运行,则跳过任何有效运行时间。

    • 当 cron 表达式中同时包含一个月中的特定一天和一周中的某一天时,备份将计划在满足该月中的某一天 一周中的某一天的日期。例如,SCHEDULE = 'USING CRON 0 0 10-20 * TUE,THU UTC' 计划在每月的任何第 10 到 20 天以及这些日期之外任何星期二或星期四的 0AM(午夜)运行备份。

  • num MINUTEnum MINUTES

    指定备份之间的等待时间间隔(以分钟为单位)。仅接受正整数。

    还支持 num M 语法。

  • num HOURnum HOURS

    指定备份之间的等待时间间隔(以小时为单位)。仅接受正整数。

    还支持 num H 语法。

为避免歧义,在以下情况下设置了 基本间隔时间

  • 创建对象时(使用 CREATE BACKUP SET ... WITH BACKUP POLICY)。

  • 当设置不同的间隔时(使用 ALTER BACKUP SET ... APPLY BACKUP POLICY 或 ALTER BACKUP POLICY ... SET SCHEDULE)。

基本间隔时间从当前时钟时间开始间隔计数器。例如,如果将 INTERVAL 值设置为 10 MINUTES,并在 9:03 AM 启用计划备份,则下一个备份将在 9:13 AM、9:23 AM 创建,以此类推。请注意,我们尽最大努力确保绝对精度,但仅保证备份不会在设定的时间间隔发生 之前 执行(即,在当前示例中,备份可以首先在 9:14 AM 运行,但绝对不会在 9:12 AM 运行)。

EXPIRE_AFTER_DAYS = days_integer

指定距离备份过期的天数。Snowflake 会自动删除过期的备份。如果未指定此参数,则备份将保留在备份集中,直到从备份集中手动删除为止。

  • 最小值:1

  • 如果您未指定 SCHEDULE 子句,则最大值:``3653``(大约 10 年)。

备注

当策略有保留锁定时,您可以增加 EXPIRE_AFTER_DAYS 值,但不能减少该值。

每个策略都必须包含 SCHEDULE 子句、EXPIRE_AFTER_DAYS 子句或两者。

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

指定 标签 名称和标签字符串值。

标签值始终为字符串,标签值的最大字符数为 256。

有关在语句中指定标签的信息,请参阅 Tag quotas

UNSET...

取消设置备份策略的以下属性之一。该属性恢复为其默认值。

  • COMMENT

  • TAG tag_name [ , tag_name ... ]

  • SCHEDULE

  • EXPIRE_AFTER_DAYS

备注

您可以取消设置 SCHEDULE 属性或 EXPIRE_AFTER_DAYS 属性,但不能同时取消设置两者。例如,当您不打算创建新备份但希望现有备份在一定时间后过期时,可以保留 EXPIRE_AFTER_DAYS 属性。

访问控制要求

用于执行此操作的 角色 必须至少具有以下 权限

权限

备注

OWNERSHIP

用于修改备份策略的角色必须具有备份策略的 OWNERSHIP 权限。

APPLY BACKUP RETENTION LOCK

用于修改带有保留锁定的备份策略的角色必须对账户具有此权限。

有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色

有关对 安全对象 执行 SQL 操作的相应角色和权限授予的一般信息,请参阅 访问控制概述

使用说明

关于元数据:

注意

客户应确保在使用 Snowflake 服务时,不会将个人数据(用户对象除外)、敏感数据、出口管制数据或其他受监管数据作为元数据输入。有关更多信息,请参阅 Snowflake 中的元数据字段

示例

将备份策略 hourly_backup_policy 重命名为 daily_backup_policy

ALTER BACKUP POLICY hourly_backup_policy
  RENAME TO daily_backup_policy;
Copy

为备份策略 hourly_backup_policy 添加注释:

ALTER BACKUP POLICY hourly_backup_policy
  SET COMMENT = 'hourly backup expires in 90 days';
Copy

备份策略 every_two_hours 的变更计划:

ALTER BACKUP POLICY every_two_hours SET SCHEDULE = '120 MINUTE';
Copy

将 EXPIRE_AFTER_DAYS 属性恢复为其默认值:

ALTER BACKUP POLICY sample_backup_policy UNSET EXPIRE_AFTER_DAYS;
Copy
语言: 中文