故障转移链接 - Azure SQL 托管实例

适用于:Azure SQL 托管实例

本文介绍如何使用 SQL Server Management Studio (SSMS) 或 PowerShell 来故障转移 SQL Server 和 Azure SQL 托管实例之间链接的数据库,以进行灾难恢复或迁移。

先决条件

若要通过链接将数据库故障转移到次要副本,需要满足以下先决条件:

停止工作负载

若要将数据库故障转移到次要副本,请先在维护时段停止主要副本上的任何应用程序工作负载。 这使数据库复制能够赶上次要副本,让你能在不丢失数据的情况下故障转移到次要副本。 在进行故障转移之前,请确保应用程序不会向主要副本提交事务。

故障转移数据库

可以使用 Transact-SQL (T-SQL)、SQL Server Management Studio 或 PowerShell 来故障转移链接的数据库。

可以从 SQL Server 2022 CU13 (KB5036432) 开始,使用 Transact-SQL(目前为预览版)对链接进行故障转移。

若要对链接执行计划的故障转移,请在主要副本上使用以下 T-SQL 命令:

ALTER AVAILABILITY GROUP [<DAGname>] FAILOVER

若要执行强制故障转移,请在次要副本上使用以下 T-SQL 命令:

ALTER AVAILABILITY GROUP [<DAGname>] FORCE_FAILOVER_ALLOW_DATA_LOSS

故障转移后查看数据库

对于 SQL Server 2022,如果选择维持链接,则可以检查分布式可用性组是否存在于 SQL Server Management Studio 中对象资源管理器可用性组下。

如果在故障转移期间删除了链接,则可以使用对象资源管理器来确认分布式可用性组不再存在。 如果选择保留可用性组,则数据库仍将同步

清理可用性组

由于使用 SQL Server 2022 进行故障转移不会中断此链接,因此可以在故障转移后维持链接,这会使可用性组和分布式可用性组保持活动状态。 无需执行其他操作。

但是,删除链接只会删除分布式可用性组,并使可用性组保持活动状态。 可以决定保留可用性组,或将其删除。

如果决定删除可用性组,请替换以下值,然后运行示例 T-SQL 代码:

  • <AGName> 替换为 SQL Server 上可用性组的名称(用于创建链接)。
-- Run on SQL Server
USE MASTER
GO
DROP AVAILABILITY GROUP <AGName> 
GO

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