业务连续性和灾难恢复选项的比较
Azure Database for MySQL 灵活服务器提供业务连续性功能,可在发生计划内或计划外服务中断时保护数据库。 若要解决不同类型的服务中断,可以应用不同级别的故障保护,这些保护措施的恢复时间或数据丢失风险各不相同。
停机示例
下面讲解计划内和计划外停机的几个示例场景。
计划内停机场景
最常见的两种计划内停机场景是用户启动计算缩放,以及 Azure 执行计划性维护。
执行计算缩放操作时,Azure 将使用请求的计算配置来预配一个新的 MySQL 灵活服务器。 现有服务器允许活动检查点完成、排空现有连接、取消未提交的事务,然后,现有服务器将会关闭。 此时,Azure 会将现有服务器的存储附加到新服务器并启动数据库。 然后,数据库在继续接受客户端连接之前执行任何所需的恢复。
新功能的应用和 bug 修复会在服务的计划性维护过程中自动发生。 在计划性维护期间还会应用次要版本升级修补程序,这会导致几秒钟的停机时间。 可以按照下一部分“计划的停机时间和维护时段”中所述安排这些活动。
计划外停机
数据库可能由于多种原因而意外关闭,例如:
- 数据库硬件故障。
- 存储驱动器故障。
- 应用程序或用户错误(例如意外删除了表)。
- 可用性区域和 Azure 区域故障。
如果未启用高可用性 (HA),则 Azure 会尝试恢复,例如复制丢失的数据、重启服务器,甚至在另一个物理节点上启动服务器。 启用 HA 可以减少甚至消除这种停机情况,如下一部分所述。
高可用性
Azure Database for MySQL 灵活服务器为 HA 提供了自动故障转移功能,该功能提供的解决方案旨在确保已提交的数据永不丢失,并防止数据库成为单一故障点。 配置 HA 后,MySQL 灵活服务器会自动预配并管理备用副本。
有两种具有不同容错能力和延迟利弊的高可用性方案:区域冗余和相同区域。
区域冗余 HA
区域冗余 HA 提供跨多个可用性区域的冗余,提供最高级别的可用性,即使整个区域发生故障,也能够恢复。 使用区域冗余 HA 配置会导致延迟增大,因此请务必确定你的应用程序是否接受此配置。 此外,使用区域冗余 HA 配置还要求数据库客户端应用程序也是区域冗余的,以确保整体操作能够继续。
相同区域高可用性
在相同区域 HA 配置中,主服务器和备用服务器驻留在同一可用性区域,从而最大程度降低了延迟。 虽然在某些用例中可能需要低延迟,但使用相同区域 HA 配置时,如果可用性区域出现故障,则导致的停机时间更长,因为 MySQL 灵活服务器需要恢复。
与区域冗余 HA 不同,相同区域 HA 可在支持 Azure Database for MySQL 灵活服务器的所有区域中使用。
备份和还原
服务器备份是任何业务连续性策略的关键组成部分。 Azure Database for MySQL 灵活服务器会自动创建备份,并将其安全地存储在托管数据库的区域内的本地冗余存储中。 发生故障或数据损坏(例如应用程序 bug 或开发错误)时,你可以使用这些备份将数据库还原到特定的时间点。
有两种类型的备份。 使用自动备份时,MySQL 灵活服务器可以创建数据库数据文件以及关联事务日志的快照。 自动快照备份每日创建一次,事务日志备份每五分钟创建一次。 如果备份失败,服务器将每隔 20 分钟重试一次,直到备份成功。
使用按需备份时,你随时可以创建数据库备份。 对于这两种类型的备份,备份文件默认将保留七天。 但是,你可以根据业务需求,将保留期的值配置为 1 到 35 天。
可以使用长期保留功能(目前为公共预览版)将备份保留最多 10 年。 长期备份解决方案可与 Azure Database for MySQL 自动备份分开使用,也可以作为其补充。 可以按照客户控制的计划或按需创建长期备份。 备份存储在 Azure Backup 托管存储帐户的单独安全域和容错域中。
除了备份数据库之外,还可以将备份文件导出到 Azure Blob 存储,然后将其用于迁移、数据恢复或存档。 按需导出功能目前以公共预览版提供,仅在公有云区域中可用。
若要存储备份文件,可以从多个存储选项中进行选择:
使用本地冗余存储(相同数据中心,相同局部区域)时,备份文件将与数据库存储在同一个数据中心。 此选项在一年内可为备份对象提供十一个 9 (99.999999999%) 的持久性。 默认情况下,未配置 HA 或配置了相同区域 HA 的服务器将使用本地冗余存储。
使用区域冗余备份存储(不同局部区域,相同 Azure 区域)时,备份文件将存储在服务器的可用性区域中,并复制到同一 Azure 区域的另一个可用性区域。 此选项在一年内可提供十二个 9 (99.9999999999%) 的持久性。 区域冗余存储对于区域冗余 HA 非常重要,如果数据必须保留在单个区域中,则必须使用区域冗余存储。
使用异地冗余备份存储(不同区域)时,备份文件将存储在服务器的 Azure 区域中,然后复制到另一个地理配对的 Azure 区域。 此选项在一年内可提供十六个 9 (99.99999999999999%) 的持久性。 只有 Azure 配对区域支持异地冗余存储。
注意:为 Azure Database for MySQL 灵活服务器提供的备份空间最高可达预配存储空间的 100%,而无需支付额外费用。 额外的存储空间按每月 GB 数计费。 有关详细信息,请参阅定价文档。
备份后,可以将备份还原到新的 MySQL 灵活服务器。 可以通过三种方式选择备份:手动选择完整备份、自动选择最新的还原点,或自动选择最快的还原点。 如果你有异地冗余备份,则还可以还原到配对区域(跨区域)。
计划的停机时间和维护时段
需要执行定期维护才能让托管服务器保持稳定、安全和最新状态。 在维护时段,服务会接收新功能、更新和修补程序的部署。 通常,维护时段安排为每隔 30 天至少维护一次,但关键的安全修补程序有时会在 7 天或更短时间内应用。
可以选择系统管理的计划,也可以为 Azure 订阅中的每个 MySQL 灵活服务器定义自定义的计划。
可以通过多种方式之一接收计划性维护通知。 通知可能:
- 通过电子邮件发送到特定地址或 Azure 资源管理器角色。
- 通过短信 (SMS) 发送。
- 作为 Azure 应用通知推送。
- 通过语音消息递送。
自定义维护时段
默认情况下,使用系统管理的计划时,系统会在 MySQL 灵活服务器区域时区的晚上 11 点到早上 7 点之间选择一小时维护时段。 使用自定义计划时,可以选择星期几和一小时时段来指定服务器的维护时段。
HA 服务器的几乎不停机维护(公共预览版)
已启用 HA 的服务器会受益于近零停机时间维护,这是一项新增功能,可以显著减少维护停机时间。 停机时间预计为 40 至 60 秒。 对于可用性要求极高的、需要尽量减少数据库连接中断的应用程序而言,几乎不停机的维护至关重要。
重新安排维护(公共预览版)
使用常规用途或业务关键服务层级时,可以重新安排维护。 在 Azure 门户的维护部分,可以将下一次计划性维护重新安排为另一个日期和时间。 还可以选择“重新安排为立即执行”来按需启动维护。