CREATE SNAPSHOT

备注

Snowflake 的支持政策和服务级别协议 中规定的服务级别目前不包括此操作。

Creates or replaces a snapshot of a block storage volume for a specified volume and service instance. The snapshot is created in the current schema.

另请参阅:

ALTER SNAPSHOTDESCRIBE SNAPSHOTDROP SNAPSHOTSHOW SNAPSHOTS

语法

CREATE [ OR REPLACE ] SNAPSHOT [ IF NOT EXISTS ] <name>
  FROM SERVICE <service_name>
  VOLUME "<volume_name>"
  INSTANCE <instance_id>
  [ COMMENT = '<string_literal>']
  [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , ... ] ) ]
Copy

必填参数

name

指定快照的标识符(即名称)的字符串;对于在其中创建快照的架构必须是唯一的。

此外,标识符必须以字母字符开头,且不能包含空格或特殊字符,除非整个标识符字符串放在双引号内(例如,"My object")。放在双引号内的标识符也区分大小写。

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

FROM SERVICE service_name

指定服务名称。

VOLUME "volume_name"

指定与服务关联的卷的名称。只能获取块存储卷的快照,而不能获取本地卷、内存卷或暂存区卷的快照。

卷名称区分大小写。因此,应始终使用双引号来匹配服务规范中的相应名称。

INSTANCE instance_id

服务实例的索引。服务实例索引从 0 开始,范围是 [0, ...,  MAX_INSTANCES - 1]。您可以调用 SYSTEM$GET_SERVICE_STATUS – 已弃用 函数来获取相关信息。

可选参数

COMMENT = 'string_literal'

指定服务的注释。

默认:无值

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

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

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

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

访问控制要求

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

权限

对象

备注

CREATE SNAPSHOT

架构

OPERATE

服务

要对架构中的任何对象执行操作,需要对父数据库和架构的 USAGE 权限。请注意,如果某个角色获授某个架构的任意权限,该角色便能够解析该架构。例如,若某角色被授予 CREATE 权限,则可以在该架构上创建对象,而无需 同时 被授予该架构的 USAGE 权限。

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

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

使用说明

  • 关于元数据:

    注意

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

  • The OR REPLACE and IF NOT EXISTS clauses are mutually exclusive. They can't both be used in the same statement.

  • CREATE OR REPLACE <object> 语句是原子的。也就是说,当对象被替换时,旧对象将被删除,新对象将在单个事务中创建。

  • Snowflake 在执行完成后大约 10 分钟删除作业服务。要保留作业服务使用的块存储卷的内容,您必须在 Snowflake 删除作业之前创建快照。例如,您可能使用存储的程序首先执行作业服务,然后立即创建快照。

  • 架构不能包含同名快照。创建快照时,如果架构中已存在同名快照,则返回错误,并且不创建快照,除非命令中包含可选的 OR REPLACE 关键字,在这种情况下 Snowflake 将删除现有快照并创建新快照。

    重要

    使用 DROP SNAPSHOT 或 CREATE OR REPLACE SNAPSHOT 命令删除的快照无法恢复。对于包含关键数据的卷,请使用唯一名称创建新的快照,例如在快照名称中使用时间戳。

示例

如果创建的服务有两个实例(容器的数量无关紧要)和一个名为“data”的卷,则使用以下 SQL 创建与第一个实例相关联的卷的快照:

CREATE SNAPSHOT snapshot_0
  FROM SERVICE example_service
  VOLUME "data"
  INSTANCE 0
  COMMENT='new snapshot';
Copy

要创建与第二个服务实例相关联的卷的快照,请在前面的 SQL 中指定 INSTANCE 1

语言: 中文