本文为您介绍SQL Server常见的几种迁移上云的方案,您可以根据数据源的位置、各方案使用的工具、各方案的优势与限制等,选择最适合您的上云方案。
准备工作
已创建规格和存储空间大于等于源库的目标RDS SQL Server实例。创建方式,请参见创建RDS SQL Server实例。
说明若您需要使用DTS迁移上云,请先确认DTS支持的源库和目标库。更多信息,请参见迁移方案概览。
在源和目标库中分别执行
SELECT name, compatibility_level FROM sys.databases;
命令,确认目标库是否兼容源库。是否兼容的判断标准,请参见兼容性级别。请确保源库和目标库的安全设置(包括防火墙、白名单、安全组等)未限制迁移工具的访问。
说明若您需要使用DTS迁移上云,请确保DTS可以正常连接数据库。更多信息,请参见添加DTS服务器的IP地址段。
上云方案简介
上云方案 | 实现流程 | 操作步骤 | |
物理备份上云 | 使用OSS(手动上云) |
| 说明 若源库为2008 R2版本,建议升级后再进行操作。 |
使用DBS和DTS(一键上云) |
| ||
逻辑迁移上云 | 使用DTS(日志解析模式) |
| |
使用DTS(混合日志解析模式) |
| ||
使用DTS(轮询查询CDC实例模式) |
| ||
其他方案上云 | 使用SSMS工具 |
|
上云方案对比
上云方案 | 方案优势 | 主要限制 | |
物理备份上云 | 使用OSS(手动上云) |
|
|
使用DBS和DTS(一键上云) |
|
| |
逻辑迁移上云 | 使用DTS(日志解析模式) |
|
|
使用DTS(混合日志解析模式) |
|
| |
使用DTS(轮询查询CDC实例模式) |
|
| |
其他方案上云 | 使用SSMS工具 | 操作过程简单稳定,数据一致性风险小。 |
|
上云方案选择
若数据源不支持增量迁移,则需要在进行上云操作之前停止源库的数据写入。
数据源 | 是否支持增量迁移 | 可选上云方案 | 推荐方案 |
自建SQL Server | 是 |
| 使用DBS和DTS物理备份一键上云,详情请参见自建SQL Server通过物理网关迁移上云。 |
Azure SQL Database | 是 |
| 使用RDS一站式上云或使用DTS逻辑迁移上云,详情请参见Azure平台的SQL Server迁移至RDS SQL Server。 |
Azure SQL Managed Instance | |||
SQL Server on Azure Virtual Machines |
| ||
Amazon RDS for SQL Server | 是 |
| 使用RDS一站式上云或使用DTS逻辑迁移上云,详情请参见AWS平台的SQL Server迁移至RDS SQL Server。 |
华为云RDS SQL Server | 否 |
| 使用OSS物理备份手动全量上云,详情请参见全量备份数据上云(SQL Server 2008 R2云盘、2012及以上版本)。 |
腾讯云数据库SQL Server | 是 |
| 使用DTS逻辑迁移上云,详情请参见自建SQL Server迁移至RDS SQL Server。 |
否 | 使用SSMS工具上云 | ||
Google Cloud SQL for SQL Server | 是 |
| 使用DTS逻辑迁移上云,详情请参见自建SQL Server迁移至RDS SQL Server。 |
后续操作
数据校验
SQL Server迁移上云后,通常需要校验数据是否已经全量迁移到RDS SQL Server实例,您可以根据实际情况进行校验。如下为两种常见校验方式:
根据核心数据校验
您可以按照日期或自增ID进行排序,以验证最新业务数据是否已经正确迁移。例如,核心业务表Orders中包含OrderID(自增ID)和OrderDate(日期)等字段,可以使用如下语句进行查询:
-- 源数据库实例中的SQL查询
SELECT TOP 10 OrderID, OrderDate, CustomerID, TotalAmount
FROM Orders
ORDER BY OrderDate DESC;
-- 目标数据库实例中的SQL查询
SELECT TOP 10 OrderID, OrderDate, CustomerID, TotalAmount
FROM Orders
ORDER BY OrderDate DESC;
使用DTS全量校验
DTS支持在不停服的情况下对源库和目标库进行校验。您可以使用DTS创建一个全量校验任务,以校验数据是否已经全量迁移。更多信息,请参见配置数据校验。
更新数据库统计信息
若SQL Server迁移上云后,目标RDS SQL Server实例的性能明显下降,可能是因为RDS SQL Server实例中的数据分布发生变化。您可以对指定数据库的统计信息进行全量更新,以恢复或提升实例性能。更多信息,请参见更新数据库统计信息。