说明高可用性和灾难恢复选项
除了其内置的高可用性,Azure 平台还提供两个选项,来为 VM 和一些 PaaS 工作负载提供更高级别的可用性。 可用性区域和可用性集会保护你的工作负载免受计划内维护活动和潜在硬件故障的影响。
高可用性选项
Azure 虚拟机 (VM) 提供了大多数 SQL Server 高可用性解决方案。 在仅包含 Azure 的解决方案中,整个 HADR 系统都在 Azure 中运行。 而在混合配置中,解决方案的一部分在 Azure 中运行,另一部分则在组织的本地运行。 Azure 环境具有灵活性,允许部分或完全迁移至 Azure,以满足 SQL Server 数据库系统对于预算和 HADR 的要求。
可用性区域
可用性区域是某个地区内的非重复物理位置。 每个区域由一个或多个数据中心组成,这些数据中心配置了独立电源、冷却和网络。 在支持可用性区域的 Azure 地区中,你可指定选择在 VM 创建期间使用可用性区域时,希望虚拟机驻留在哪个区域。 每个支持的 Azure 地区中都有 3 个可用性区域。 在将多个 VM 部署到不同区域中时,可用性区域提供了高可用性来对抗数据中心故障。 此外,它们还提供了一种方式来让 Microsoft 仅在任何给定时间更新一个区域,从而在每个地区执行维护(使用一个名为“更新域”的组)。 你可将你的虚拟机生态系统分散到地区中的 3 个区域内。 通过将可用性区域与 Azure 虚拟机结合使用,可将运行时间提高到 99.99%(四个 9),这相当于每年故障时间不超过 52.60 分钟。 若要了解哪些 Azure 地区支持可用性区域,可访问 docs.microsoft.com。 如果可用性区域在你所在地区可用,并且你的应用程序可支持最低跨区域延迟,那么可用性区域将为你的应用程序提供最高级别的可用性。
在上图中,你可以看到可用性区域配置。 在将 VM 部署到具有可用性区域的地区中时,你将会看到用于在区域 1、2 和 3 中进行部署的选项。 这些区域是物理数据中心的逻辑表示形式,这意味着在一个订阅中部署到区域 1,并不不意味着在另一订阅中区域 1 代表的是相同的数据中心。
可用性集
可用性集与可用性区域很相似,不同之处在于它们不是将工作负载分散到某个区域的数据中心,而是将工作负载分散到数据中心的服务器和机架。 Azure 中几乎所有的工作负载都是虚拟的,因此你可使用可用性集来确保包含 Always On 可用性组成员的两个 VM 并不在同一物理主机上运行。 可用性集可使可用性达到 99.95%;当可用性区域在某地区不可用,或者应用程序不能容忍区域内延迟时,应使用可用性集。
Always On 可用性组 (AG)
可在 Azure 虚拟机上运行的,或者跨本地数据中心和 Azure 的两个或更多(最多 9 个)SQL Server 实例之间实现 AlwaysOn 可用性组。 在可用性组中,数据库事务提交到主要副本,然后以同步或异步的方式被发送到所有次要副本。 服务器之间的物理距离是指它们是否在同一 Azure 区域,该距离指示你应选择哪种可用性模式。 通常,如果工作负载要求延迟尽量最低,或者次要副本分散在多个地理位置,那么推荐使用异步可用性模式。 如果副本位于同一 Azure 区域,并且应用程序能容忍一定程度的延迟,那么应考虑使用同步提交模式。 同步模式有助于确保在允许应用程序继续之前,每个事务都提交到一个或多个次要副本。 Always On 可用性组既提供可用性组,又提供灾难恢复,原因是一个可用性组既支持同步可用性模型,又支持异步可用性模型。 可用性组的故障转移单位是一组数据库,而不是整个实例。
“始终可用”可用性组还可以用于灾难恢复目的。 你最多可跨 Azure 区域实现 9 个数据库副本,并使用分布式可用性组来进一步延伸该体系结构。 可用性组确保主要区域之外的其他位置存在可实施的数据库副本。 这样做,你可帮助确保你的数据生态系统免受自然灾难和一些人为灾难的影响。
上图显示了正在 Windows Server 故障转移群集上运行的 Always On 可用性组的逻辑关系图。 存在 1 个主要副本和 4 个次要副本。 在此情况中,全部 5 个副本都可以是同步的,或是同步副本和异步副本的某种组合。 请记住,故障转移单位是一组数据库,而不是实例。 故障转移群集实例在实例级别提供高可用性,但它不提供灾难恢复。
SQL Server 故障转移群集实例
如果需要保护整个实例,则可使用 SQL Server 故障转移群集实例 (FCI),它在一个区域中为整个实例提供高可用性。 如果没有与其他功能(例如可用性组或日志传送)相结合,那么 FCI 不会提供灾难恢复。 FCI 还要求具有共享存储,可使用共享文件存储或 Windows Server 上的存储空间直通在 Azure 上提供这种存储。
对于 Azure 工作负载,可用性组是较新部署的首选解决方案,因为 FCI 还具有共享存储,这增加了部署的复杂性。 不过,对于从本地解决方案进行的迁移,可能需要使用 FCI 来获取应用程序支持。
灾难恢复选项
虽然 Azure 平台默认确保运行时间达到 99.9%,但仍然可能发生灾难,影响应用程序运行时间。 在执行任何类型的迁移时,部署适当的灾难恢复计划都很重要。 Azure 为我们提供了几种方法来确保你在发生灾难时,在虚拟机上的 SQL Server 得到保护。 有两个组件来实现这种保护。 首先,有一些 Azure 平台选项,例如用于备份的异地复制存储和 Azure Site Recovery,后者是一种适合所有工作负载的全面灾难恢复解决方案。 其次,还有一些 SQL Server 专属产品/服务,例如可用性组和备份。
原生 SQL Server 备份
备份被视为所有数据库管理员的生命之血,在使用云解决方案时,也没有什么不同。 如果在 Azure 虚拟机上有 SQL Server,你就可精细地控制何时进行备份及其存储在哪里。 可使用 SQL 代理作业直接备份到链接指向 Azure Blob 存储的 URL。 Azure 提供了选项来使用异地冗余存储 (GRS) 或读取访问异地冗余存储 (RA-GRS),确保你的备份文件安全地存储在各个地理位置。
此外,身为 Azure SQL VM 服务提供商的一员,你可让平台自动管理你的备份。
适用于 SQL Server 的 Azure 备份
Azure 备份解决方案要求在虚拟机上安装代理。 然后,该代理与负责管理 SQL Server 数据库自动备份的 Azure 服务进行通信。 Azure 备份还提供了一个集中的位置,你可在此管理和监视备份,确保满足任何指定的 RPO/RTO 指标。
如上所示,Azure 备份解决方案是一种全面的企业备份解决方案,它提供长期数据保留、自动管理和额外的数据保护。 与只是执行你自己的备份,或者对 SQL Server 使用 Azure 资源提供程序相比,此选项成本更高,但它提供更完整的备份功能集。
Azure Site Recovery
Azure Site Recovery 是一种低成本的解决方案,它将对 Azure 虚拟机执行块级别复制。 此服务提供众多选项,包括用于测试和验证灾难恢复策略的功能。 此解决方案最适合无状态环境(例如 Web 服务器)而不是事务性数据库虚拟机。
支持将 Azure Site Recovery 与 SQL Server 结合使用,但请记住,你将需要设置级别更高的恢复点,这意味着可能出现损失。 在此情况下,恢复时间目标 (RTO) 实质上是恢复点目标 (RPO)。
- VM 使用 Azure Site Recovery 注册
- 数据持续复制到缓存
- 缓存将复制到目标存储帐户
- 故障转移期间,将虚拟机添加到目标环境