检查已启用 Azure Arc 的 SQL 托管实例的灾难恢复
尽管高可用性和时间点还原功能对于最大限度地减少因本地化故障或数据损坏问题而导致的业务运营中断至关重要,但它们不足以满足所有业务连续性方面的需求。 基本企业工作负载和数据服务通常需要灾难恢复预配,例如适用于本地美国政府合同相关数据存储的预配。 这些预配必须允许你在发生影响主站点可用性的中断时执行到另一个美国数据中心的故障转移。
已启用 Azure Arc 的 SQL 托管实例以 Azure 故障转移组的形式提供灾难恢复功能。 这些功能在常规用途和业务关键服务层级中都可用。
Azure 故障转移组
Azure 故障转移组涉及在不同的物理站点中实现配置相同的自定义 Kubernetes 资源。 这样,可以在出现站点级服务中断时在这些资源之间执行手动故障转移。 这样产生的行为反映了 Microsoft SQL Server 中可用的分布式可用性组功能。
Azure 故障转移组在主站点和辅助站点中的托管实例之间异步传输数据。 托管实例必须具有匹配的计算、容量和服务层级。
使用 Azure 故障转移组实现灾难恢复
若要跨两个站点实现 Azure 故障转移组,必须在每个站点中预配一个 Kubernetes 群集,并确保这两个站点都具有匹配的存储容量、vCPU 和内存资源,可用于各自的已启用 Azure Arc 的 SQL 托管实例部署。
已启用 Arc 的 SQL 托管实例常规用途层受与 SQL Server Standard Edition 相同的资源限制,并使用单个副本。 在这种情况下,实现 Azure 故障转移组需要辅助站点中有单个副本。 已启用 Arc 的 SQL 托管实例的业务关键层级受与 SQL Server Enterprise Edition 相同的资源限制,且最多使用三个副本。 在这种情况下,实现 Azure 故障转移组需要辅助站点中有相同数量的副本。
如果主站点发生预期中断,请使用 az sql instance-failover-group-arc update --role secondary
Azure CLI 命令。 这会产生正常的故障转移,有助于确保从主站点复制所有挂起的事务并将其应用到辅助站点。
如果由于已启用 Azure Arc 的 SQL 托管实例的主实例不可用而无法进行正常的故障转移,则必须使用强制故障转移。 若要调用此选项,请运行相同的 Azure CLI 命令,但将 --role
参数设置为 force-primary-allow-data-loss
值。 请务必记住,在强制故障转移中可能会丢失数据。