超大规模数据库的自动备份

适用于:Azure SQL 数据库

本文介绍 Azure SQL 数据库中超大规模数据库的自动备份功能。

超大规模数据库使用独特的体系结构,该体系结构具有高度可缩放的存储和计算性能层。 超大规模备份是基于快照的,几乎是即时的。 在备份保留期内,日志备份存储在长期 Azure 存储中。

超大规模体系结构不需要完整备份、差异备份或日志备份。 因此,备份频率、存储成本、计划、存储冗余和还原功能不同于 Azure SQL 数据库中的其他数据库。

备份和还原性能

通过存储和计算分离,超大规模可将备份和还原操作下推到存储层,从而消除计算副本上的资源消耗。 数据库备份不会影响主计算副本或次要计算副本的性能。

由于使用了存储快照,因此无论数据大小如何,超大规模数据库的备份和还原操作都能快速完成。 备份几乎是瞬时完成的。

可以通过以下方法将数据库还原到其备份保留期内的任意时间点:

  1. 还原到相应的文件快照。
  2. 应用事务日志以使还原的数据库在事务上一致。

因此,还原操作的数据大小并非保持不变。 在同一 Azure 区域中还原超大规模数据库几分钟内即可完成,无需数小时或数天,甚至对于数 TB 大小的数据库也是如此。

发出还原时更改存储冗余可能会导致还原时间更长,因为还原是数据大小,因此时间将与数据库大小成正比。

通过还原现有备份或复制数据库来新建数据库的操作也利用了超大规模中的计算和存储分离。 使用相同的存储类型时,只需几分钟即可在同一区域内创建用于开发或测试的数据库副本,即使数据库的大小是若干 TB。

备份保留

超大规模数据库的默认短期保留时间是 7 天。

截至 2023 年 9 月,超大规模数据库的短期备份保留(1 至 35 天)和长期备份保留 (LTR) 功能已普遍可用。 有关详细信息,请参阅长期保留 - Azure SQL 数据库和 Azure SQL 托管实例

备份计划

对于超大规模数据库,没有传统的完整、差异和事务日志备份。 但拍摄了数据文件的定期存储快照。

生成的事务日志会按原样保留,时长为配置的保留期。 在还原时,相关事务日志记录将应用于还原的存储快照。 结果就是数据库处于事务一致状态,使其在保留期内的指定时间点前不丢失任何数据。

监视备份存储消耗量

在超大规模中,Azure Monitor 指标报告以下消耗信息:

  • 数据备份存储大小(快照备份大小)
  • 数据存储大小(分配的数据库大小)
  • 日志备份存储大小(事务日志备份大小)

若要在 Azure 门户中查看备份和数据存储指标,请执行以下步骤:

  1. 转到要监视其备份和数据存储指标的超大规模数据库。
  2. 在“监视”部分,选择“指标”页。
  3. 从“指标”下拉列表中,选择“数据备份存储”、“数据存储大小”和“日志备份存储”指标,以及相应的聚合规则。

Screenshot of the Azure portal that shows selections for viewing Hyperscale backup storage consumption.

减少备份存储消耗

超大规模数据库的备份存储消耗取决于保留期、区域选择、备份存储冗余和工作负荷类型。 请考虑使用以下优化技术来减少超大规模数据库的备份存储消耗:

  • 根据需要将备份保留期缩短至最小。
  • 避免频繁执行不必要的大型写入操作(如索引维护)。 若要了解有关索引维护的建议,请参阅优化索引维护以提高查询性能并减少资源消耗
  • 对于大型数据加载操作,请考虑在适当时使用数据压缩。
  • 在应用程序逻辑中使用 tempdb 而不是永久性表来存储临时结果和/或暂时性数据。
  • 不需要异地还原功能时(例如在开发/测试环境中时),请使用本地冗余或区域冗余备份存储。

备份存储成本

超大规模备份存储成本取决于区域和备份存储冗余。 还取决于工作负载类型。

写入密集型的工作负载更可能频繁更改数据页面,从而导致存储快照更大。 此类工作负荷还会生成更多事务日志,从而增加整体备份成本。 备份存储按每月消耗的 GB 数收费。 有关定价详细信息,请参阅 Azure SQL 数据库定价页。

对于超大规模,可计费备份存储的计算方式如下:

Total billable backup storage size = (data backup storage size + log backup storage size)

数据存储大小不属于可计费备份,因为它已作为分配的数据库存储计费。

已删除的超大规模数据库会产生备份成本,以便恢复至删除前的某个时间点。 对于已删除的超大规模数据库,可计费备份存储的计算方式如下:

Total billable backup storage size for deleted Hyperscale database = (data storage size + data backup size + log backup storage size) * (remaining backup retention period after deletion / configured backup retention period)

数据存储大小包含在公式中,因为分配的数据库存储不会因已删除的数据库单独计费。 对于已删除的数据库,数据会在删除后存储,目的是在配置的备份保留期内进行恢复。

已删除的数据库的可计费备份存储在删除后会逐渐减少。 它变为零表示不再保留备份且不再可能进行恢复。 如果这是永久删除,并且你不再需要备份,则可以通过在删除数据库之前缩短保留期来优化成本。

数据和备份存储冗余

超大规模支持可配置的存储冗余。 在创建超大规模数据库时,可以选择首选的存储类型:读取访问异地冗余存储 (RA-GRS)、区域冗余存储 (ZRS) 或本地冗余存储 (LRS)。

由于超大规模使用存储快照进行备份,因此数据和备份共享相同的存储帐户。 因此,所选的备份存储冗余适用于数据和备份。

注意

在创建超大规模数据库时,请仔细考虑备份存储冗余,因为只能在创建数据库期间对其进行设置。 预配资源后无法修改此设置。

使用活动异地复制更新现有超大规模数据库的备份存储冗余设置,并将故障时间将至最低。 也可以使用数据库复制

警告

  • 在将数据库更新为使用本地冗余或区域冗余存储后,将立即禁用异地还原
  • 区域冗余存储目前仅在特定区域可用。

将超大规模数据库还原到其他区域

可能需要将超大规模数据库还原到与当前区域不同的区域。 常见原因包括灾难恢复操作/演练或重定位。 主要方法是对数据库执行异地还原。 你使用的步骤与将 Azure SQL 数据库中的任何其他数据库还原到其他区域时使用的步骤完全相同:

  1. 如果目标区域中没有适当的服务器,请在其中创建一个服务器。 此服务器应该由原始(源)服务器的同一个订阅拥有。
  2. 请遵照有关从自动备份还原 Azure SQL 数据库中数据库的页面上的异地还原部分中的说明操作。

注意

由于源与目标位于不同的区域,因此数据库不能像在非异地还原方案中所做的那样与源数据库共享快照存储。 无论数据库大小如何,非异地还原都会很快完成。

异地还原超大规模数据库是一种与数据大小相关的操作,即使目标位于异地复制存储的配对区域中。 因此,与同区域中的时间点还原相比,异地还原所需的时间要长得多。

如果目标位于配对区域中,数据传输将会位于某个区域内。 该传输将会比跨区域数据传输快得多, 但它仍将是与数据大小相关的操作。

如果你愿意,可以将数据库复制到另一区域。 当异地还原由于不受所选存储冗余类型支持而不可用时,请使用此方法。 有关详细信息,请参阅用于超大规模的数据库复制

数据库备份是任何业务连续性和灾难恢复策略的基本组成部分,因为数据库备份有助于保护数据免遭意外损坏或删除。