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

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

适用于:Azure SQL 托管实例

本文介绍如何使用托管实例链接在任意位置托管的 SQL Server 与 Azure SQL 托管实例之间配置混合灾难恢复解决方案。

概述

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

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

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

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

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

Diagram showing the disaster recovery scenario.

重要

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

先决条件

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

权限

对于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 Management Studio (SSMS)脚本手动故障转移至 Azure SQL 托管实例,并且此过程是单向的。

联机故障回复 (SQL Server 2022)

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

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

可以使用 SQL Server Management Studio (SSMS)脚本在两个副本之间进行手动故障转移。

脱机故障回复 (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. 在“基本信息”选项卡上,选择“计算 + 存储”下的“配置托管实例”以打开“计算 + 存储”页:

    Screenshot of creating a new managed instance in the Azure portal with configure managed instance selected.

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

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

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

现有实例

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

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

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

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

    Screenshot of the compute and storage page for your managed instance in the Azure portal with hybrid failover rights highlighted.

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

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