全部产品
Search
文档中心

数据传输服务 DTS:SQL Server迁移上云指南

更新时间:Nov 27, 2023

本文为您介绍SQL Server常见的几种迁移上云的方案,您可以根据数据源的位置、各方案使用的工具、各方案的优势与限制等,选择最适合您的上云方案。

上云方案简介

上云方案

实现流程

操作步骤

物理备份上云

使用OSS(手动上云)

  1. 将数据库日志恢复模式(backup_type)修改为FULL。

  2. 将全量数据进行备份,并上传到OSS Bucket(存储空间)。

  3. 定时备份和上传增量日志。

  4. 停止源库的数据写入,最后一个增量日志回放成功后,将业务切换到新数据库。

SQL Server实例级别迁移上云

说明

若源库为2008 R2版本,建议升级后再进行操作。

使用DBS和DTS(一键上云)

  1. 部署物理协议网关。

  2. 使用DTS迁移上云(内部会调用OSS Bucket)。

  3. 停止源库的数据写入,最后一个增量日志回放成功后,将业务切换到新数据库。

自建SQL Server通过物理网关迁移上云

逻辑迁移上云

使用DTS(日志解析模式)

  1. 使用DTS迁移上云。

    说明

    SQLServer增量同步模式选择为解析源库日志做增量同步(不支持堆表)

  2. 停止源库的数据写入,最后一个增量日志回放成功后,将业务切换到新数据库。

自建SQL Server迁移至RDS SQL Server

使用DTS(混合日志解析模式)

  1. 使用DTS迁移上云。

    说明

    SQLServer增量同步模式选择为非堆表用日志解析增量同步,堆表用CDC增量同步

  2. 停止源库的数据写入,最后一个增量日志回放成功后,将业务切换到新数据库。

其他方案上云

使用SSMS工具

  1. 停止源库的数据写入。

  2. 使用SSMS工具导出源库数据。

  3. 使用SSMS工具将导出的数据导入到目标库。

  4. 校验数据一致性后,将业务切换到新数据库。

使用SSMS迁移上云

上云方案对比

上云方案

方案优势

主要限制

物理备份上云

使用OSS(手动上云)

  • 由于使用的是SQL Server自带的备份和恢复功能,所以支持的场景较多。

  • 迁移速度较快。

  • 可以根据源库日志格式,手动修改备份文件的名称。

  • 需要手动备份和上传日志,操作较为繁琐。

  • 每次只能完成一个数据库的迁移上云。

  • 存在分钟级别的停服:需要停止源库的数据写入,且最后一个增量日志回放成功后才能切换业务。

  • 不支持由高版本迁移到低版本。

  • 不支持库表列的映射功能。

使用DBS和DTS(一键上云)

  • 迁移操作在DTS控制台,配置操作简单方便。

  • 单次迁移支持多个数据库。

  • 由于使用的是SQL Server自带的备份和恢复功能,所以支持的场景较多。

  • 迁移速度较快。

  • 要求备份日志格式必须以bak结尾。

  • 存在分钟级别的停服:需要停止源库的数据写入,且最后一个增量日志回放成功后才能切换业务。

  • 需要在源库物理机上安装AliyunDBSAgent。

  • 不支持由高版本迁移到低版本。

  • 不支持库表列的映射功能。

逻辑迁移上云

使用DTS(日志解析模式)

  • 迁移操作在DTS控制台,配置操作简单方便。

  • 支持不同版本数据库间的迁移。

  • 支持库表列映射功能。

  • DTS实例含增量任务时,源库无需停止写入,支持平滑迁移。

  • 支持第三方云迁移到阿里云。

    例如源库为Amazon RDS SQL Server时支持全量迁移,源库为Azure SQL Server(非SQL database模式)时支持全量和增量迁移。

  • 仅支持部分DDL,且频繁的DDL操作(大于100条/h)会影响迁移速率。

  • 源库日志量超过10 MB/s、30 GB/h、500 GB/d时,可能会导致任务出现延迟,甚至失败。

  • 源库日志备份频率超过1次/h时,DTS可能获取不到本地备份日志(建议本地磁盘保留备份日志3天)。

  • DTS会在源库创建Trigger、DDL存储表等,用于捕获DDL变更。

  • 增量迁移过程中需关闭外键约束,否则可能会导致任务失败。

  • 不支持堆表、无主键表、压缩表、含计算列表等场景。

  • 无主键和无唯一约束的表可能出现重复数据,若需要保留无主键或无唯一约束的表,则不建议使用此方案。

  • DTS使用fn_log函数拉取和解析日志,该函数稳定性不高,若出现预期外的行为,可能会导致任务失败。

  • 单个DTS任务迁移的数据库不能超过10个,否则可能会有稳定性和性能问题的风险。

使用DTS(混合日志解析模式)

  • 迁移操作在DTS控制台,配置操作简单方便。

  • 支持不同版本数据库间的迁移。

  • 支持库表列映射功能。

  • 支持堆表、无主键表、压缩表等属性表。

  • 支持第三方云迁移到阿里云。

    例如源库为Amazon RDS SQL Server时支持全量迁移,源库为Azure SQL Server(非SQL database模式)时支持全量和增量迁移。

  • 对源库版本有要求:企业版需要为2008及以上版本,标准版需要为2016SP1及以上版本(不包含2017版本)。

  • 仅支持部分DDL,且频繁的DDL操作(大于100条/h)会影响迁移速率。

  • 源库日志量超过10 MB/s、30 GB/h、500 GB/d时,可能会导致任务出现延迟,甚至失败。

  • 源库日志备份频率超过1次/h时,DTS可能获取不到本地备份日志(建议本地磁盘保留备份日志3天)。

  • DTS会开启库级别CDC和部分表CDC,且会在源库创建Trigger、DDL存储表等,用于捕获DDL变更。

  • 增量迁移过程中需关闭外键约束,否则可能会导致任务失败。

  • 不支含计算列表的场景。

  • 无主键和无唯一约束的表可能出现重复数据,若需要保留无主键或无唯一约束的表,则不建议使用此方案。

  • DTS使用fn_log函数拉取和解析日志,该函数稳定性不高,若出现预期外的行为,可能会导致任务失败。

  • 单个DTS任务迁移的数据库不能超过10个,否则可能会有稳定性和性能问题的风险。

其他方案上云

使用SSMS工具

操作过程简单稳定,数据一致性风险小。

  • 需要停止源库的数据写入,否则可能会导致数据不一致。

  • 需要自行使用SSMS工具操作。

上云方案选择

重要

若数据源不支持增量迁移,则需要在进行上云操作之前停止源库的数据写入。

数据源

是否支持增量迁移

可选上云方案

推荐方案

自建SQL Server

  • 使用OSS物理备份手动上云

  • 使用DBS和DTS物理备份一键上云

  • 使用DTS逻辑迁移上云

使用DBS和DTS物理备份一键上云,详情请参见自建SQL Server通过物理网关迁移上云

Azure SQL Database

  • 使用SSMS工具上云

  • 使用DTS逻辑迁移上云(全量)

    说明

    增量数据迁移过程中DBCC(Database Console Commands)命令不可用等原因,导致无法迁移增量数据。

使用SSMS工具上云,详情请参见使用SSMS迁移上云

Azure SQL Managed Instance

  • 使用DTS逻辑迁移上云

  • 使用SSMS工具上云

使用DTS逻辑迁移上云,详情请参见自建SQL Server迁移至RDS SQL Server

重要

由于源库会频繁触发日志截断,从而导致DTS增量迁移任务失败,因此建议您在短期迁移上云时使用此方案。

Azure SQL server (logical server)

Amazon RDS SQL Server

  • 使用SSMS工具上云

  • 使用DTS逻辑迁移上云(全量)

    说明

    由于Amazon RDS SQL Server未开放增量数据迁移所需的sysadmin角色权限,所以暂不支持增量数据迁移。

使用DTS逻辑迁移全量上云,详情请参见自建SQL Server迁移至RDS SQL Server

华为云RDS SQL Server

  • 使用SSMS工具上云

  • 使用DTS逻辑迁移上云(全量)

  • 使用OSS物理备份手动上云(全量)

使用OSS物理备份手动上全量云,详情请参见全量备份数据上云(SQL Server 2012及以上版本)

说明

腾讯云数据库SQL Server

  • 使用SSMS工具上云

  • 使用DTS逻辑迁移上云

  • 使用OSS物理备份手动上云

使用DTS逻辑迁移上云,详情请参见自建SQL Server迁移至RDS SQL Server