使用分布式 AG 完成迁移
使用分布式可用性组 (AG) 将数据库从 SQL Server 迁移到 Azure 虚拟机 (VM) 上的 SQL Server。
本文假设你已经为独立数据库或可用性组数据库配置了分布式 AG,现在您已准备好完成迁移到 Azure VM 上的 SQL Server。
监视迁移
使用 Transact-SQL (T-SQL) 监视迁移进度。
在全局主要节点和转发器上运行以下脚本,并验证主要可用性组 (OnPremAG) 和辅助可用性组 (AzureAG) 的 synchronization_state_desc
状态是否为 SYNCHRONIZED
。 确认分布式 AG (DAG) 的 synchronization_state_desc
正在同步,并且 last_hardened_lsn
对于全局主服务器和转发器上的每个数据库都是相同的。
否则,每隔 5 秒左右在双方重新运行一次查询,直到相同为止。
使用以下脚本监视迁移:
SELECT ag.name,
drs.database_id,
db_name(drs.database_id) AS database_name,
drs.group_id,
drs.replica_id,
drs.synchronization_state_desc,
drs.last_hardened_lsn
FROM sys.dm_hadr_database_replica_states drs
INNER JOIN sys.availability_groups ag
ON drs.group_id = ag.group_id;
完成迁移
验证可用性组和分布式 AG 的状态后,便可以准备完成迁移了。 这包括将分布式 AG 故障转移到转发器(Azure 中的目标 SQL Server),然后将应用程序切换到 Azure 端的新节点。
要对分布式可用性组进行故障转移,请查看故障转移到辅助可用性组。
故障转移后,更新应用程序的连接字符串以连接到 Azure 中的新主副本。 此时可以选择维护分布式可用性组,或者在源和目标 SQL Server 实例上使用 DROP AVAILABILITY GROUP [DAG]
删除分布式可用性组。
如果域控制器位于源端,请验证 Azure 中的目标 SQL Server VM 是否已加入域,然后再放弃源 SQL Server 实例。 在 Azure 中的源端创建域并将 SQL Server VM 添加到此新域之前,请勿删除源端的域控制器。