复制组和故障转移组的错误通知¶
通过设置主复制组或故障转移组的通知集成,您可以接收刷新操作失败的错误通知。
刷新操作失败的错误通知¶
为复制组或故障转移组启用错误通知后,当刷新操作失败时,会通过指定的电子邮件、云消息服务或 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
的通知集成,请按照以下步骤操作:
确保电子邮件地址
first.last@example.com
已经过验证。通过执行 CREATE NOTIFICATION INTEGRATION 命令,创建通知集成。例如:
CREATE NOTIFICATION INTEGRATION my_notification_int TYPE = EMAIL ENABLED = TRUE DEFAULT_RECIPIENTS = ('first.last@example.com');
创建通知集成 (TYPE = QUEUE)¶
要创建用于向云提供商队列推送通知的通知集成,请按照为当前支持的云提供商队列提供的说明进行操作:
创建通知集成 (TYPE = WEBHOOK)¶
要创建用于向外部系统 Webhook 推送通知的通知集成,请按照为当前支持的外部系统 Webhook 提供的说明进行操作:
创建 Slack 密钥 和 Slack 通知集成
重要
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"}'
对于 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" } } }'
为复制组或故障转移组添加错误通知¶
要为现有复制组/故障转移组启用错误通知,请使用 ALTER REPLICATION GROUP 或 ALTER FAILOVER GROUP 命令设置 ERROR_INTEGRATION 参数。
例如,将通知集成 my_notification_int
添加到故障转移组 my_fg
。必须从 源 账户执行以下语句:
ALTER FAILOVER GROUP my_fg SET
ERROR_INTEGRATION = my_notification_int;
要创建复制组/故障转移组并启用错误通知,请使用 CREATE REPLICATION GROUP 或 CREATE FAILOVER GROUP 命令并设置 ERROR_INTEGRATION 参数。
例如,要创建故障转移组 my_fg
以启用数据库``db1``、db2
到账户 myaccount2
和 myaccount2
在组织 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;
备注
如果复制组或故障转移组的复制计划已设置为高频率(例如一分钟),则系统会为每次计划的刷新操作发送相同问题的错误通知。