类别:

Information Schema表函数

REPLICATION_GROUP_DANGLING_REFERENCES

检测复制组或故障转移组中引用的对象实际上没有复制到辅助账户的情况。Snowflake 将这些类型的引用称为 悬空引用

使用此函数检测复制配置中的悬空引用后,您可以重新排列复制组或故障转移组,以便将所有引用的对象都包括在内。或者,您可以修改 SQL 对象层次结构,使引用的对象成为容器(例如数据库或架构)的一部分,而容器包含在复制组或故障转移组中。

如果使用多个复制组或故障转移组,则还可以指定刷新操作的顺序,以确保解决悬空引用所需的任何对象在引用它们的对象之前复制到辅助账户。

重要

特别注意 IS_BLOCKING_REFRESH 列中的任何 TRUE 值。在解析这些引用之前,刷新和故障转移操作都无法继续。

另请参阅:

跨复制组的复制和引用

语法

REPLICATION_GROUP_DANGLING_REFERENCES( '<replication_or_failover_group_name>' )
Copy

实参

'replication_or_failover_group_name'

用于检查悬空引用的复制组或故障转移组的名称。整个名称必须放在单引号内。

输出

该函数返回以下列。

列名称

数据类型

描述

REFERENCED_ENTITY_DOMAIN

VARCHAR

悬空引用所引用的实体的域。

REFERENCED_ENTITY_NAME

VARCHAR

悬空引用所引用的实体的完全限定名称。

REFERENCING_ENTITY_DOMAIN

VARCHAR

存在悬空引用的复制组中实体的域,例如 Table

REFERENCING_ENTITY_NAME

VARCHAR

存在悬空引用的复制组中实体的完全限定名称。

REFERENCING_ENTITY_GROUPS

VARCHAR

包含引用实体的所有复制组的逗号分隔列表,若没有复制组包含该实体则显示 NULL。

IS_BLOCKING_REFRESH

BOOLEAN

如果为 TRUE,则复制刷新和故障转移将失败,直到此引用得到解决。如果为 FALSE,尽管存在悬空引用,Snowflake 仍可以执行这些操作。

使用说明

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

  • 您可以从组织中的任何账户运行此函数。您指定的复制组或故障转移组必须存在于调用该函数的账户中。也就是说,您可以指定在调用该函数的云服务提供商区域中使用的组名。

    • 如果使用主账户上的复制组或故障转移组调用该函数,则如果相应的引用对象未复制到 所有 辅助账户,该函数会报告悬空引用。

    • 如果使用辅助账户上的复制组或故障转移组调用该函数,则如果相应的引用对象未复制到调用该函数的特定辅助账户,该函数会报告悬空引用。

  • 有关如何处理复制组和故障转移组中的悬空引用的信息,请参阅 跨复制组的复制和引用

示例

要检查故障转移组 myfg 中是否存在悬空引用,请从主账户或辅助账户运行以下语句。

SELECT *
  FROM TABLE(
      INFORMATION_SCHEMA.REPLICATION_GROUP_DANGLING_REFERENCES('myfg')
  );
Copy
语言: 中文