复制组和故障转移组的错误通知

通过设置主复制组或故障转移组的通知集成,您可以接收刷新操作失败的错误通知。

刷新操作失败的错误通知

为复制组或故障转移组启用错误通知后,当刷新操作失败时,会通过指定的电子邮件、云消息服务或 Webhook 发送通知。

通知包括以下信息:

  • 源账户名称和目标账户名称。

  • 源区域和目标区域(以及区域组,如适用)。

  • 主复制组和辅助复制组或故障转移组名称。

  • 错误发生时的时间戳。

  • 错误代码和消息。

  • 源和目标登录 URL。

错误通知和故障转移

通知在主复制组或故障转移组上启用,并使用通知集成发送。通知集成无需复制到目标账户。在故障转移的情况下,如果通知集成已被复制,或在新升级的源账户中有同名的现有通知集成,则会继续发送错误通知。

如果通知集成不可用,则不会发送刷新操作失败的错误通知。

前提条件:用于错误通知的通知集成

发送错误通知需要通知集成。通知集成必须是以下类型之一,才能在刷新操作失败时发送电子邮件通知:

TYPE = EMAIL:

电子邮件通知集成必须在 DEFAULT_RECIPIENTS 列表中至少有一个经过验证的电子邮件地址。

有关创建带有默认收件人列表的电子邮件通知的更多信息,请参阅 指定默认收件人列表和默认主题行

TYPE = QUEUE:

您可以使用一个通知集成,该通知集成配置为将通知推送到 Snowflake 支持的任一云提供商的消息服务。您必须将通知集成 TYPE 参数设置为 QUEUE,将 DIRECTION 参数设置为 OUTBOUND。

有关更多信息,请参阅 向云提供商队列(Amazon SNS、Google Cloud PubSub 和 Azure 事件网格)发送通知

TYPE = WEBHOOK:

您可以使用一个通知集成,该通知集成配置为将通知推送到 Snowflake 支持的任一外部系统的 Webhook。将通知集成 TYPE 参数设置为 WEBHOOK。您可能还需要创建一个密钥(如果外部系统需要)。

有关更多信息,请参阅 发送 Webhook 通知

创建通知集成 (TYPE = EMAIL)

如需使用电子邮件地址 first.last@example.com 创建名为 my_notification_int 的通知集成,请按照以下步骤操作:

  1. 确保电子邮件地址 first.last@example.com 已经过验证

  2. 通过执行 CREATE NOTIFICATION INTEGRATION 命令,创建通知集成。例如:

    CREATE NOTIFICATION INTEGRATION my_notification_int
      TYPE = EMAIL
      ENABLED = TRUE
      DEFAULT_RECIPIENTS = ('first.last@example.com');
    
    Copy

创建通知集成 (TYPE = QUEUE)

要创建用于向云提供商队列推送通知的通知集成,请按照为当前支持的云提供商队列提供的说明进行操作:

创建通知集成 (TYPE = WEBHOOK)

要创建用于向外部系统 Webhook 推送通知的通知集成,请按照为当前支持的外部系统 Webhook 提供的说明进行操作:

重要

Webhook 通知集成必须指定 WEBHOOK_BODY_TEMPLATE 参数,并将 SNOWFLAKE_WEBHOOK_MESSAGE 设为占位值。发送通知时,占位符会被替换为复制错误通知的内容,如 Error notifications for refresh operation failures 中所述。

指定 WEBHOOK_BODY_TEMPLATE 的格式取决于外部系统:

  • 对于 Slack 或 Microsoft Teams,WEBHOOK_BODY_TEMPLATE 使用以下单值 JSON 对象格式作为其值:

    WEBHOOK_BODY_TEMPLATE='{"text": "SNOWFLAKE_WEBHOOK_MESSAGE"}'
    
    Copy
  • 对于 PagerDuty,WEBHOOK_BODY_TEMPLATE 利用多值 JSON 对象作为其值,但与标准的 PagerDuty 通知集成有以下区别:

    • payload 键内,summary 用来指定 SNOWFLAKE_WEBHOOK_MESSAGE

    • 而是使用附加的 custom_details 键来指定 SNOWFLAKE_WEBHOOK_MESSAGE

    例如:

    WEBHOOK_BODY_TEMPLATE='{
      "routing_key": "SNOWFLAKE_WEBHOOK_SECRET",
      "event_action": "trigger",
      "payload": {
        "summary": "Snowflake replication failure",
        "source": "Snowflake monitoring",
        "severity": "INFO",
        "custom_details": {
          "message": "SNOWFLAKE_WEBHOOK_MESSAGE"
        }
      }
    }'
    
    Copy

为复制组或故障转移组添加错误通知

要为现有复制组/故障转移组启用错误通知,请使用 ALTER REPLICATION GROUPALTER FAILOVER GROUP 命令设置 ERROR_INTEGRATION 参数。

例如,将通知集成 my_notification_int 添加到故障转移组 my_fg。必须从 账户执行以下语句:

ALTER FAILOVER GROUP my_fg SET
  ERROR_INTEGRATION = my_notification_int;
Copy

要创建复制组/故障转移组并启用错误通知,请使用 CREATE REPLICATION GROUPCREATE FAILOVER GROUP 命令并设置 ERROR_INTEGRATION 参数。

例如,要创建故障转移组 my_fg 以启用数据库``db1``、db2 到账户 myaccount2myaccount2 在组织 myorg 中的复制和故障转移,请在 账户中执行以下语句以创建主故障转移组:

CREATE FAILOVER GROUP my_fg
  OBJECT_TYPES = DATABASES
  ALLOWED_DATABASES = db1, db2
  ALLOWED_ACCOUNTS = myorg.myaccount2, myorg.myaccount3
  REPLICATION_SCHEDULE = '10 MINUTE'
  ERROR_INTEGRATION = my_notification_int;
Copy

备注

如果复制组或故障转移组的复制计划已设置为高频率(例如一分钟),则系统会为每次计划的刷新操作发送相同问题的错误通知。

语言: 中文