使用托管实例链接进行灾难恢复 - 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、2017 和 2019,主实例始终是 SQL Server,并且到辅助托管实例的故障转移是单向的。 不支持通过故障回复到 SQL Server 并将 SQL 托管实例设为主要实例来逆转角色。 但是,可以使用事务复制导出 bacpac 等数据移动选项将数据恢复到 SQL Server。

重要

成功故障转移到 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/托管实例/分布式可用性组 /read, /write, /delete, /setRole/action
Microsoft.Sql/managedInstances/endpointCertificates /read
Microsoft.Sql/managedInstances/hybridLink /读取、/写入、/删除
Microsoft.Sql/managedInstances/serverTrustCertificates /写、/删除、/读取

单向故障转移 (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 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. 选择应用以保存所做的更改。

要使用该链接,请参阅以下内容:

要了解有关该链接的详细信息,请参阅以下内容:

对于其他复制和迁移方案,请考虑: