类别:

Information Schema表函数

REPLICATION_GROUP_REFRESH_HISTORY、REPLICATION_GROUP_REFRESH_HISTORY_ALL

您可以使用 REPLICATION_GROUP_REFRESH_HISTORY 系列表函数查询一个辅助复制或故障转移组或所有此类组的复制历史记录。

默认情况下(未提供日期范围实参时),这些函数返回过去 12 小时的数据。您可以使用可选的 DATE_RANGE_STARTDATE_RANGE_END 实参,在 14 天的保留期内查询自定义范围。

另请参阅:

REPLICATION_GROUP_REFRESH_HISTORY 视图

语法

REPLICATION_GROUP_REFRESH_HISTORY(
      '<secondary_group_name>'
      [ , DATE_RANGE_START => <constant_expr> ]
      [ , DATE_RANGE_END => <constant_expr> ] )

REPLICATION_GROUP_REFRESH_HISTORY_ALL(
      [ DATE_RANGE_START => <constant_expr> ]
      [ , DATE_RANGE_END => <constant_expr> ] )

实参

'secondary_group_name'

辅助组的名称。整个名称必须放在单引号内。对于 REPLICATION_GROUP_REFRESH_HISTORY 为必填项。不与 REPLICATION_GROUP_REFRESH_HISTORY_ALL 一起使用。

以下实参对于这两个函数都是可选的。

DATE_RANGE_START => constant_expr. DATE_RANGE_END => constant_expr

返回复制刷新历史记录的日期/时间范围。

  • 如果既未指定开始日期,也未指定结束日期,则默认值为过去 12 小时。

  • 如果指定了开始日期但未指定结束日期,则使用 CURRENT_DATE 午夜作为范围的结束时间。

  • 如果指定了结束日期但未指定开始日期,则范围从 DATE_RANGE_END 开始前 12 小时开始算起。

数据保留 14 天。如果请求的范围超出了 14 天的保留期,则该函数将返回错误。

输出

该函数返回以下各列。REPLICATION_GROUP_REFRESH_HISTORY_ALL 还有其他列,分别为结果集的前两列。

列名称

数据类型

描述

GROUP_NAME

TEXT

指定哪个二级复制或故障转移组对应于结果集中的此行。仅适用于 REPLICATION_GROUP_REFRESH_HISTORY_ALL。

GROUP_TYPE

TEXT

指定结果集中与该行对应的组是故障转移组还是复制组。值为 FAILOVERREPLICATION。仅适用于 REPLICATION_GROUP_REFRESH_HISTORY_ALL。

PHASE_NAME

TEXT

复制操作的当前阶段。有关阶段列表,请参阅 使用说明

START_TIME

TIMESTAMP_LTZ

复制操作开始的时间。

END_TIME

TIMESTAMP_LTZ

复制操作完成的时间(如果适用)。如果正在进行中,则为 NULL

JOB_UUID

TEXT

用于刷新作业的查询 ID。

TOTAL_BYTES

VARIANT

一个 JSON 对象,提供有关刷新数据库的详细信息:

  • totalBytesToReplicate:预计要复制的字节总数。

  • bytesUploaded:实际上传的字节数。

  • bytesDownloaded:实际下载的字节数。

  • databases:每个成员数据库包含以下字段的 JSON 对象列表:

    • name:数据库的名称。

    • totalBytesToReplicate:数据库预计要复制的总字节数。

OBJECT_COUNT

VARIANT

一个 JSON 对象,提供有关刷新对象的详细信息:

  • totalObjects:复制或故障转移组中的对象总数。

  • completedObjects:完成的对象总数。

  • objectTypes:包含每种类型的以下字段的 JSON 对象列表:

    • objectType:对象的类型(例如用户、角色、授权、仓库、架构、表、列等)。

    • totalObjects:复制或故障转移组中此类型的对象总数。

    • completedObjects:已完成的此类型对象总数。

PRIMARY_SNAPSHOT_TIMESTAMP

TIMESTAMP_LTZ

创建主快照的时间戳。

ERROR

VARIANT

如果刷新操作成功,则为 NULL。如果刷新操作失败,则返回提供有关错误的详细信息的 JSON 对象:

  • errorCode:失败的错误代码。

  • errorMessage:失败的错误消息。

使用说明

  • 如果未提供 DATE_RANGE_STARTDATE_RANGE_END 实参,函数将返回过去 12 小时的数据。要检索过去 12 小时之前的数据,请明确指定日期范围。数据最多保留 14 天。

  • 仅返回对复制组或故障转移组具有任何权限的角色的行。

  • 仅返回当前账户中辅助复制或故障转移组的行。

  • 当调用 Information Schema 表函数时,会话必须具有正在使用的 INFORMATION_SCHEMA 架构,或者 函数名称必须受到完全限定。有关更多详细信息,请参阅 Snowflake Information Schema

  • 以下是所处理订单中的阶段列表:

    #

    阶段名称

    描述

    1

    SECONDARY_SYNCHRONIZING_MEMBERSHIP

    辅助复制或故障转移组从主组接收有关该组中包括的对象的信息,并更新其成员元数据。

    2

    SECONDARY_UPLOADING_INVENTORY

    辅助复制或故障转移组将目标账户中其对象的清单发送到主组。

    3

    PRIMARY_UPLOADING_METADATA

    主复制或故障转移组在源账户中创建元数据快照并将其发送到辅助组。

    4

    PRIMARY_UPLOADING_DATA

    主复制或故障转移组复制辅助组需要的文件,以协调源账户和目标账户中的对象之间的任何增量。

    5

    SECONDARY_DOWNLOADING_METADATA

    辅助复制或故障转移组应用主复制或故障转移组发送的元数据快照。元数据更新不是以原子方式应用,而是随着时间的推移逐步应用。

    6

    SECONDARY_DOWNLOADING_DATA

    辅助复制或故障转移组将主组发送的文件复制到目标账户。

    7

    COMPLETED / FAILED / CANCELED

    刷新运行状态。

示例

要检索辅助组 myfg 的刷新历史记录,请执行以下语句。

SELECT phase_name, start_time, end_time,
       total_bytes, object_count, error
  FROM TABLE(
      INFORMATION_SCHEMA.REPLICATION_GROUP_REFRESH_HISTORY('myfg')
  );

要检索所有故障转移组和复制组过去 12 小时(默认)的刷新历史记录,请执行以下语句:

SELECT phase_name, start_time, end_time,
       total_bytes, object_count, error
  FROM TABLE(
      INFORMATION_SCHEMA.REPLICATION_GROUP_REFRESH_HISTORY_ALL()
  );

要检索所有组过去 7 天的刷新历史记录,请执行以下操作:

SELECT phase_name, start_time, end_time,
       total_bytes, object_count, error
  FROM TABLE(
      INFORMATION_SCHEMA.REPLICATION_GROUP_REFRESH_HISTORY_ALL(
          DATE_RANGE_START => DATEADD(D, -7, CURRENT_DATE),
          DATE_RANGE_END => CURRENT_DATE)
  );

要检索辅助组 myfg 特定日期范围的刷新历史记录,请执行以下操作:

SELECT phase_name, start_time, end_time,
       total_bytes, object_count, error
  FROM TABLE(
      INFORMATION_SCHEMA.REPLICATION_GROUP_REFRESH_HISTORY(
          'myfg',
          DATE_RANGE_START => '2025-04-01',
          DATE_RANGE_END => '2025-04-07')
  );