你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用托管实例链接进行灾难恢复 - Azure SQL 托管实例

适用于: Azure SQL 托管实例

本文介绍如何使用托管实例链接在任意位置托管的 SQL Server 与 Azure SQL 托管实例之间配置混合灾难恢复解决方案,以及如何通过在免许可证的 DR 副本上激活混合故障转移来节省许可成本。

概述

使用托管实例链接可进行灾难恢复,在发生灾难时,可以手动将工作负载从主数据库故障转移到辅助数据库。

使用 SQL Server 2022 时,SQL Server 或 Azure SQL 托管实例可以是主数据库,并且最初可以从 SQL Server 或 SQL 托管实例建立链接。 可以根据需要在 SQL Server 和 Azure SQL 托管实例之间沿任一方向进行故障转移。

故障回复到 SQL Server 2022 时,可以选择以下故障回复方式:

  • 直接使用托管实例链接进行联机故障回复。 目前可在预览版中使用此选项。
  • 通过备份 SQL 托管实例中的数据库并将其还原到 SQL Server 2022 实例脱机进行故障回复。 此选项已正式发布。

显示灾难恢复方案的示意图。

使用 SQL Server 2016 和 SQL Server 2019 时,主数据库始终是 SQL Server,并且故障转移至辅助托管实例的过程是单向的。 不支持通过故障回复到 SQL Server 和将 SQL 托管实例设置为主实例来扭转角色。 但是,可以使用事务复制导出 bacpac 等数据移动选项将数据恢复到 SQL Server。

重要

成功故障转移到 SQL 托管实例后,手动将应用程序连接字符串重新指向 SQL 托管实例 FQDN,以完成故障转移过程,并继续在 Azure 中运行。

先决条件

若要使用 Azure SQL 托管实例的链接进行灾难恢复,需要满足以下先决条件:

  • 一个有效的 Azure 订阅。 如果没有帐户,请创建一个免费帐户
  • 支持的 SQL Server 版本,安装了所需的服务更新。
  • Azure SQL 托管实例。 开始创建(如果没有实例)。
  • SQL Server 与 Azure SQL 托管实例之间配置的托管实例链接
  • 若要建立链接或从 SQL 托管实例故障转移到 SQL Server 2022,必须使用 SQL Server 2022 更新策略配置托管实例。 使用“始终保持最新”更新策略配置的实例不支持从 SQL 托管实例到 SQL Server 2022 的数据复制和故障转移。
  • 虽然可以建立从 SQL Server 2022 到使用“始终保持最新”更新策略配置的 SQL 托管实例的链接,但在故障转移到 SQL 托管实例后,将无法再复制数据或故障恢复到 SQL Server 2022。

权限

对于SQL Server,应具有 sysadmin 权限。

对于 Azure SQL 托管实例,你应是 SQL 托管实例参与者的一位成员,或具有自定义角色的以下权限:

Microsoft.Sql/ 资源 必要的权限
Microsoft.Sql/managedInstances /read、/write
Microsoft.Sql/managedInstances/hybridCertificate /action
Microsoft.Sql/managedInstances/databases /read、/delete、/write、/completeRestore/action、/readBackups/action、/restoreDetails/read
Microsoft.Sql/managedInstances/distributedAvailabilityGroups /read、/write、/delete、/setRole/action
Microsoft.Sql/managedInstances/endpointCertificates /read
Microsoft.Sql/managedInstances/hybridLink /read、/write、/delete
Microsoft.Sql/managedInstances/serverTrustCertificates /write、/delete、/read

单向故障转移 (SQL Server 2016 - 2022)

对于 SQL Server 2016 和 SQL Server 2019,从 SQL Server 故障转移至 Azure SQL 托管实例的过程是单向的。 无法故障回复或将数据库还原到 SQL Server。 但是,可以使用事务复制导出 bacpac 等数据移动选项将数据恢复回 SQL Server。 故障转移至 Azure SQL 托管实例时,会断开链接并删除分布式可用性组。

使用 SQL Server 2022 时,可以选择通过在故障转移过程中断开链接来执行单向故障转移,例如迁移。 故障转移 SQL Server 2022 数据库时,请务必为企业选择适当的选项。

若要进行故障转移,请查看故障转移链接

联机故障回复 (SQL Server 2022)

SQL Server 2022 引入了具有故障回复功能的联机故障转移,使你能够无缝地故障转移至 Azure SQL 托管实例,然后使用托管实例链接联机故障回复到 SQL Server,同时最大程度地缩短停机时间。

目前可在预览版中使用从 SQL 托管实例联机故障回复到 SQL Server 的选项。

若要进行故障转移,请查看故障转移链接

脱机故障回复 (SQL Server 2022)

使用 SQL Server 2022 时,在灾难得到缓解后,可以选择从 SQL 托管实例脱机故障回复到 SQL Server,方法是在托管实例上备份数据库,然后将其还原到 SQL Server。 此选项已正式发布。

若要开始使用,请参阅将数据库还原到 SQL Server 2022

无许可证被动 DR 副本

当被动辅助 SQL 托管实例仅用于灾难恢复时,可以通过激活混合故障转移权益来节省许可成本。 可以为新实例和现有实例激活混合故障转移权益

注意

仅当你在 SQL Server 和 SQL 托管实例之间的混合环境中将辅助实例配置为被动实例时,混合故障转移权益才适用。 如需获得故障转移组中的两个实例之间的故障转移权益,请改为使用故障转移权益

新实例

要激活新实例的混合故障转移权益,请执行以下步骤:

  1. Azure 门户中,转到“SQL 托管实例”页。

  2. 选择“+ 创建”以打开“创建 Azure SQL 托管实例”页。

  3. 在“基本信息”选项卡上,选择“计算 + 存储”下的“配置托管实例”以打开“计算 + 存储”页:

    在 Azure 门户中创建新托管实例的屏幕截图,其中选中了“配置托管实例”。

  4. 在“SQL Server 许可证”下选择“混合故障转移权限”

  5. 选中对应框以确认将此实例用作被动副本。

  6. 选择应用以保存所做的更改。

现有实例

要激活现有实例的混合故障转移权益,请执行以下步骤:

  1. 转到 Azure 门户中的 SQL 托管实例

  2. 在资源菜单的“设置”下,选择“计算 + 存储”

  3. 在“SQL Server 许可证”下选择“混合故障转移权限”,然后选中对应框以确认将此实例用作被动副本:

    Azure 门户中托管实例的计算和存储页面的屏幕截图,其中突出显示了混合故障转移权限。

  4. 选择“应用”以保存所做的更改。

限制

以下功能仅在 SQL Server 2022 和采用 SQL Server 2022 更新策略的 SQL 托管实例之间受支持:

  • 建立从 SQL 托管实例到 SQL Server 的链接。
  • 从 SQL 托管实例故障转移到 SQL Server 2022。

虽然可以建立从 SQL Server 2022 到使用“始终保持最新”更新策略配置的 SQL 托管实例的链接,但在故障转移到 SQL 托管实例后,将无法再复制数据或故障回复到 SQL Server 2022。

有关链接功能的详细信息,请参阅以下资源: