备份已启用延伸的数据库 (Stretch Database)

适用于: SQL Server 2016 (13.x) 及更高版本 - 仅限 Windows

重要

SQL Server 2022 (16.x) 和 Azure SQL 数据库中已弃用 Stretch Database。 在数据库引擎的未来版本中将删除此功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。

数据库备份有助于你从许多类型的故障、错误和灾难中恢复。

  • 必须对已启用延伸的 SQL Server 数据库进行备份。

  • Microsoft Azure 将自动备份 Stretch Database 已从 SQL Server 迁移到 Azure 的远程数据。

备份仅仅是完整高可用性和业务连续性解决方案的一部分。 有关高可用性的详细信息,请参阅 高可用性解决方案

备份 SQL Server 数据

若要备份已启用延伸的 SQL Server 数据库,可以继续使用目前所用的 SQL Server 备份方法。 有关详细信息,请参阅 SQL Server 数据库的备份和还原

已启用延伸的 SQL Server 数据库备份只包含该备份运行时所处时间点的本地数据和符合迁移条件的数据。 (符合条件的数据是指尚未迁移,但会根据表的迁移设置迁移到 Azure 的数据。)这称为浅表备份,这种备份不会包括已迁移到 Azure 的数据。

备份远程 Azure 数据

Microsoft Azure 将自动备份 Stretch Database 已从 SQL Server 迁移到 Azure 的远程数据。

Azure 可降低自动备份时数据丢失的风险

Azure 上的 SQL Server Stretch Database 服务通过自动存储快照(至少每隔 8 小时)保护你的远程数据库。 每张快照将保留 7 天,为你提供一系列可能的还原点。

Azure 可降低地域冗余带来的数据丢失的风险

Azure 数据库备份存储在地域冗余 Azure 存储 (RA-GRS) 上,因此默认为地域冗余。 地域冗余存储会将你的数据复制到距主要区域数百英里的次要区域。 在主要区域和次要区域,数据将分别复制到次要区域三次,并且是在不同的容错域和升级域之间复制。 这可确保即使遇到整个区域停电或致使 Azure 其中一个区域不可用的灾难时,你的数据仍是持久的。

Stretch Database 通过暂时保留已迁移行来降低 Azure 数据的数据丢失风险

在 Stretch Database 将符合条件的行从 SQL Server 迁移至 Azure 后,它可将这些行保留在临时表中至少 8 小时。 如果还原 Azure 数据库的备份,Stretch Database 将使用保存在临时表中的行来协调 SQL Server 和 Azure 的数据库。

还原 Azure 数据的备份后,必须运行 sys.sp_rda_reauthorize_db 存储过程,重新将已启用延伸的 SQL Server 数据库连接至远程 Azure 数据库。 当你运行 sys.sp_rda_reauthorize_db时,Stretch Database 将自动协调 SQL Server 和 Azure 的数据库。

若要增加 Stretch Database 暂时保留到临时表中的已迁移数据的小时数,运行 sys.sp_rda_set_rpo_duration 存储过程并指定大于 8 的小时数。 若要确定要保留数据的数量,请考虑以下因素:

  • Azure 自动备份的频率(至少每隔 8 小时)。
  • 出现问题后识别问题和决定恢复备份所需的时间。
  • Azure 还原操作的持续时间。

注意

增加 Stretch Database 暂时保留到临时表中的已迁移数据的数量会增加 SQL Server 所需的空间大小。

若要查看 Stretch Database 暂时保留到临时表中的数据的小时数,请运行 sys.sp_rda_set_rpo_duration存储过程。

请参阅