业务连续性和灾难恢复简介¶
本主题介绍跨区域和云平台的复制和故障转移的主要用例。Snowflake 复制和故障转移/故障恢复功能由以下功能组成:
总的来说,这些单独的功能旨在支持许多不同的基本业务连续性场景,包括:
计划的故障转移:用于灾难恢复演习,以测试准备情况并测量恢复点和时间。
计划外故障转移:当一个区域或云平台出现故障时,将另一个区域或云平台中的辅助账户对象和数据库提升为读写主对象。
迁移:将 Snowflake 账户移动到不同的区域或云平台,而不会中断您的业务。例如,在并购过程中保持业务连续性,或促进云战略的改变。
多个可读的辅助对象和数据库:账户对象和数据库可以复制到不同区域和云平台的多个账户,降低多个区域或云平台中断的风险。
此外, Snowflake Secure Data Sharing 和 Database Replication 可实现跨区域和云平台安全地共享数据。
本主题内容:
账户复制和故障转移/故障恢复功能¶
复制和故障转移/故障恢复¶
复制 使用两个 Snowflake 对象( 复制组和故障转移组)将一组具有时间点一致性的对象从源账户复制到一个或多个目标账户。复制组允许客户指定复制内容、复制到何处以及复制频率。这意味着按照可定制的计划时间间隔指定要复制哪些对象、复制到哪些区域或云平台。通过故障转移组可以对一个组中的账户对象进行复制 和 故障转移。
账户对象可以包括仓库、用户和角色,以及数据库和共享(请参阅 复制对象 获取有关可包含在复制或故障转移组中的对象的完整列表)。账户对象可以分为一组或多组。
在发生故障转移的情况下,账户复制可以将账户故障转移到不同的区域或云平台。每个复制和故障转移组都有自己的复制时间表,可以针对不同的对象组设置不同的复制频率。对于故障转移组,它还可以单独启用组的故障转移。您可以选择对所有故障转移组进行故障转移,也可以仅选择故障转移组。
Client Redirect¶
Client Redirect 提供*连接 URL*,Snowflake 客户端可以使用该连接 URL 连接到 Snowflake。连接 URL 可以根据需要将 Snowflake 客户端重定向到不同的 Snowflake 账户。
业务连续性和灾难恢复¶
如果发生大规模中断(由于网络问题、软件错误等)导致给定区域的云服务中断,则在解决中断根源并恢复服务之前,将无法访问 Snowflake。为了确保在这种情况下的持续可用性和数据持久性,请将关键账户对象复制到组织中位于不同区域的另一个 Snowflake 账户。
对于异步复制,辅助副本通常会根据您配置的复制计划滞后于主要对象。例如,如果您选择每 30 分钟复制一次主复制组或故障转移组,则在中断期间,组中的辅助副本对象将最多滞后主副本对象 30 分钟。
根据业务需求,您可以选择:
正常状态:区域正常运行¶
账户对象复制: 将具有关键账户对象的故障转移组复制到与存储主(源)故障转移组的账户所在区域不同的一个或多个 Snowflake 账户。经常刷新故障转移组。
区域中断¶
要确定读取和写入的优先级,请按照以下任一示例场景中的步骤操作。当某个区域发生中断时,选择同时对关键故障转移组和 Snowflake 客户端连接进行故障转移。
先读后写¶
当某个区域的中断导致 Snowflake 可用性全部或部分丢失时,此路径允许您首先将 Snowflake 客户端重定向到关键故障转移组中账户对象的只读副本,以最大限度地缩短停机时间。在短期中断期间,选择以只读模式运行通常是可取的。
长期中断加上对最新数据的需求需要读写模式。
Client Redirect: 将客户端使用的连接 URL 指向存储只读副本(辅助)故障转移组的 Snowflake 账户。
故障转移(需要时): 如果发生长期中断,请将连接 URL 指向的 Snowflake 账户中的辅助故障转移组提升为读写主要故障转移组。
先写后读¶
当某个区域的中断导致 Snowflake 可用性全部或部分丢失时,此路径允许您首先恢复具有关键账户对象的故障转移组并继续处理数据。对于希望首先对数据库和 ETL(提取、转换、加载)流程进行故障转移,然后选择仅在数据为最新时重定向 Snowflake 客户端的账户管理员来说,此选项更合适。
故障转移: 将关键账户对象位于不同区域中的辅助故障转移组提升为主要故障转移组,这允许写入每个故障转移组中包含的账户对象。组中的数据库可写之后,您就可以使用 ETL 流程来确定写入的优先级并协调数据。
Client Redirect(需要时): 将客户端使用的连接 URL 指向存储新主要故障转移组的 Snowflake 账户。
正常状态:中断已解决¶
复制: 刷新发生中断的区域中 Snowflake 账户中的故障转移组。
故障恢复: 将发生中断的 Snowflake 账户中的故障转移组恢复为主要故障转移组。
Client Redirect: 将客户端使用的连接 URL 指向发生中断的区域中的 Snowflake 账户。
账户迁移¶
账户迁移是将 Snowflake 对象和存储的数据迁移(或转移)到另一个区域或不同云平台上的账户的一次性过程。迁移账户的典型原因包括更接近您的用户群,或者根据您的公司战略或与其他云资产(例如数据湖)共置而偏好不同的云平台。
账户对象复制支持账户对象(例如仓库、用户和角色)以及数据库和共享的复制。请参阅 复制对象 获取复制对象的完整列表。
备注
账户对象复制和故障转移/故障恢复需要 Business Critical(或更高版本)。Snowflake 可以暂时放弃一次性账户迁移的这一要求。