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

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

本文介绍如何通过DTS控制台的物理网关迁移上云功能将ECS、IDC或其他云服务器中的自建SQL Server数据库迁移到RDS SQL Server。该功能采用物理网关协议的接入方式,具有速度快、操作简单、稳定性好、场景覆盖全等特点,能够有效提高迁移效率。

使用场景

若您的自建SQL Server数据库所在服务器可以访问公网,您可以采用本文中的操作将自建SQL Server数据库迁移到RDS SQL Server中。

说明

若您的自建SQL Server数据库所在服务器无法连接公网,但有一台专门的堡垒机进行网络通信时,请参考其他迁移方案,请参见自建SQL Server通过堡垒机架构的物理网关迁移上云

前提条件

  • 源端自建SQL Server数据库版本需为:SQL Server 2019、2017、2016、2014、2012、2008 R2、2005。

    说明

    支持阿里云ECS自建数据库、IDC自建数据库、其他云服务器上的自建数据库,不支持云数据库

  • 目标端RDS SQL Server实例需满足以下条件:

    • 目标端数据库的版本:SQL Server 2019、2017、2016、2014、2012、2008 R2。

    • 目标端RDS SQL Server实例版本必须大于或等于源端自建SQL Server版本。

  • 使用阿里云账号完成如下授权:

迁移说明

类型

说明

源库限制

  • 仅支持Windows上的SQL Server,且桌面Windows版本不能低于XP,服务器Windows版本不能低于2003。

  • 源端数据库大小不能超过目标端RDS SQL Server实例的剩余空间,否则会导致上云失败。

  • 源端数据库所在的服务器可以正常访问外网。

  • 源端数据库名称不能与目标端云上实例的数据库名称重复。

  • 源端数据库名称不能与某些系统库名或者其他不能使用的库名重复,列举如下:

    reserved_dbname = ["master", "tempdb", "msdb", "model", "distribution","rdscore","sys_info"]
  • 源端SQL Server网络需满足如下条件:

    • 若源端未开启防火墙,且源端为阿里云ECS自建数据库,则可通过VPC或公网进行访问。

    • 若源端未开启防火墙,且源端为非阿里云ECS自建数据库,则可通过公网进行访问。

    • 若源端开启了防火墙,则需要放行*.aliyuncs.com,以保证后续网络可正常连通。

数据库版本

目标端SQL Server版本必须大于或等于源端SQL Server版本,版本高低关系如下:

  • 2019 > 2017 > 2016 >2014 > 2012 > 2008 R2 > 2005

  • 企业版(Developer)> 标准版 > Web > Express

说明

各版本支持的迁移关系,请参见支持的迁移关系

内存数据库与镜像技术

由于SQL ServerIn-Memory OLTP特性和Mirroring技术是不兼容的,如果您的源端开启了内存数据库,目标端不能为高可用版的RDS实例。

数据库个数

多库迁移时,由于RDS的数据库个数存在约束限制,不同的实例规格限制也相应不同,具体请参见使用限制

其他限制

  • 执行物理迁移任务期间不允许执行其他备份数据库的操作,除非执行其他备份操作前,已打开了COPY_ONLY选项。

  • 不支持迁移如下字段类型的数据:FileStreamFileTables

  • 当前仅支持迁移单库或多库或整个实例。

  • 不支持迁移内存表。

  • 鉴于SQL Server作为商业化闭源数据库,其日志格式在DTS进行增量变更数据捕获(CDC)与解析过程中,可能因已知或未知的格式特性限制而出现不可避免的问题。因此,在生产环境启用SQL Server源端的DTS增量同步或迁移同步之前,建议客户严格遵循POC测试标准,进行全场景覆盖性验证,包括所有业务变更类型、表结构调整及业务高峰压力测试。由于SQL Server日志格式及其潜在的不可预测特性,确保生产环境业务逻辑与POC阶段一致,是保证DTS高效稳定运行的关键。

注意事项

  • 数据迁移上云期间允许对源端自建SQL Server数据库进行增量写入,但在上云切换过程中请勿进行写入操作,否则会导致数据不一致。

  • 增量迁移期间,目标端RDS SQL Server数据库暂时处于不可用状态。请等待增量迁移任务完成,并且选择切换上云后再使用目标数据库。

支持的迁移关系

源端版本(Edition)

目标RDS版本(Edition)

企业版(Developer)/标准版/Web/Express

企业版

标准版/Web/Express

标准版

Web/Express

Web

操作步骤

  1. 进入目标地域的迁移任务列表页面(二选一)。

    通过DTS控制台进入

    1. 登录数据传输服务DTS控制台

    2. 在左侧导航栏,单击数据迁移

    3. 在页面左上角,选择迁移实例所属地域。

    通过DMS控制台进入

    说明

    实际操作可能会因DMS的模式和布局不同,而有所差异。更多信息。请参见极简模式控制台自定义DMS界面布局与样式

    1. 登录DMS数据管理服务

    2. 在顶部菜单栏中,选择Data + AI > 数据传输(DTS) > 数据迁移

    3. 迁移任务右侧,选择迁移实例所属地域。

  2. 单击创建任务,进入任务配置页面。

  3. 配置源库及目标库信息。

    警告

    选择源和目标实例后,建议您仔细阅读页面上方显示的使用限制,否则可能会导致任务失败或数据不一致。

    类别

    配置

    说明

    任务名称

    DTS会自动生成一个任务名称,建议配置具有业务意义的名称(无唯一性要求),便于后续识别。

    源库信息

    选择已有连接信息

    • 若您需要使用已录入系统(新建或保存)的数据库实例,请在下拉列表中选择所需的数据库实例,下方的数据库信息将自动进行配置。

      说明

      DMS控制台的配置项为选择DMS数据库实例

    • 若您未将数据库实例录入到系统,或无需使用已录入系统的数据库实例,则需要手动配置下方的数据库信息。

    数据库类型

    选择SQL Server

    接入方式

    选择物理协议

    实例地区

    默认为自建SQL Server数据库所属地域。

    物理协议网关(DBS备份网关)

    选择目标物理协议网关。

    说明

    物理协议网关的安装方法,请参见附录:新建物理协议网关

    域名或IP地址

    此处默认为localhost

    端口

    填入自建SQL Server数据库的服务端口,默认为1433

    目标库信息

    选择已有连接信息

    • 若您需要使用已录入系统(新建或保存)的数据库实例,请在下拉列表中选择所需的数据库实例,下方的数据库信息将自动进行配置。

      说明

      DMS控制台的配置项为选择DMS数据库实例

    • 若您未将数据库实例录入到系统,或无需使用已录入系统的数据库实例,则需要手动配置下方的数据库信息。

    数据库类型

    默认为SQL Server

    接入方式

    默认为云实例

    实例地区

    选择目标RDS SQL Server实例所属地域。

    实例ID

    选择目标RDS SQL Server实例ID。

    数据库账号

    填入目标RDS SQL Server实例的数据库账号。

    说明

    RDS SQL Server数据库账号创建及授权方法,请参见创建普通账号、高权限账号与全局只读账号修改账号权限

    数据库密码

    填入该数据库账号对应的密码。

  4. 配置完成后,在页面下方单击测试连接以进行下一步,并在弹出的DTS服务器访问授权对话框单击测试连接

    说明

    请确保DTS服务的IP地址段能够被自动或手动添加至源库和目标库的安全设置中,以允许DTS服务器的访问。更多信息,请参见添加DTS服务器IP地址白名单

  5. 配置任务对象。

    1. 对象配置页面,配置待迁移的对象。

      配置项

      说明

      任务步骤

      • 如果只需要进行全量迁移,请选中全量迁移(默认必选)。

      • 如果需要进行不停机迁移,请选中全量迁移增量迁移

      说明

      如果未选择增量迁移,为保障数据一致性,数据迁移期间请勿在源实例中写入新的数据。

      源库对象

      源库对象框中单击待迁移的对象,然后单击向右小箭头将其移动到已选择对象框。

      说明

      支持迁移单库、多库或整个实例。

      已选择对象

      显示目标迁移对象。

    2. 单击下一步高级配置,进行高级参数配置。

      配置

      说明

      源库、目标库无法连接后的重试时间

      在迁移任务启动后,若源库或目标库连接失败则DTS会报错,并会立即进行持续的重试连接,默认重试720分钟,您也可以在取值范围(10~1440分钟)内自定义重试时间,建议设置30分钟以上。如果DTS在设置的时间内重新连接上源、目标库,迁移任务将自动恢复。否则,迁移任务将失败。

      说明
      • 针对同源或者同目标的多个DTS实例,网络重试时间以后创建任务的设置为准。

      • 由于连接重试期间,DTS将收取任务运行费用,建议您根据业务需要自定义重试时间,或者在源和目标库实例释放后尽快释放DTS实例。

      源库、目标库出现其他问题后的重试时间

      在迁移任务启动后,若源库或目标库出现非连接性的其他问题(如DDLDML执行异常),则DTS会报错并会立即进行持续的重试操作,默认持续重试时间为10分钟,您也可以在取值范围(1~1440分钟)内自定义重试时间,建议设置10分钟以上。如果DTS在设置的重试时间内相关操作执行成功,迁移任务将自动恢复。否则,迁移任务将会失败。

      重要

      源库、目标库出现其他问题后的重试时间的值需要小于源库、目标库无法连接后的重试时间的值。

      监控告警

      根据业务需求选择是否设置告警并接收告警通知。

      • 不设置:不设置告警。

      • 设置:设置告警。您还需要设置告警阈值告警联系人,当迁移失败或延迟超过阈值后,系统将进行告警通知。

  6. 保存任务并进行预检查。

    • 若您需要查看调用API接口配置该实例时的参数信息,请将鼠标光标移动至下一步保存任务并预检查按钮上,然后单击气泡中的预览OpenAPI参数

    • 若您无需查看或已完成查看API参数,请单击页面下方的下一步保存任务并预检查

    说明
    • 在迁移任务正式启动之前,会先进行预检查。只有预检查通过后,才能成功启动迁移任务。

    • 如果预检查失败,请单击失败检查项后的查看详情,并根据提示修复后重新进行预检查。

    • 如果预检查产生警告:

      • 对于不可以忽略的检查项,请单击失败检查项后的查看详情,并根据提示修复后重新进行预检查。

      • 对于可以忽略无需修复的检查项,您可以依次单击点击确认告警详情确认屏蔽确定重新进行预检查,跳过告警检查项重新进行预检查。如果选择屏蔽告警检查项,可能会导致数据不一致等问题,给业务带来风险。

  7. 购买实例。

    1. 预检查通过率显示为100%时,单击下一步购买

    2. 购买页面,选择数据迁移实例的链路规格,详细说明请参见下表。

      类别

      参数

      说明

      信息配置

      资源组配置

      选择实例所属的资源组,默认为default resource group。更多信息,请参见什么是资源管理

      链路规格

      DTS为您提供了不同性能的迁移规格,迁移链路规格的不同会影响迁移速率,您可以根据业务场景进行选择。更多信息,请参见数据迁移链路规格说明

    3. 配置完成后,阅读并选中《数据传输(按量付费)服务条款》

    4. 单击购买并启动,并在弹出的确认对话框,单击确定

      您可在数据迁移界面单击目标迁移实例,在任务管理页面,查看实例迁移进展。

      说明

      您也可以在RDS控制台目标实例的备份恢复 > 备份数据库上云记录页面查看数据的全量或增量迁移进度。

  8. 全量迁移任务进度为100%,增量迁移任务进行时,在目标迁移任务的任务管理 > 增量迁移页面,单击迁移上云按钮。

  9. 在弹出的您确定要切换上云吗对话框中,单击立即开始,等待迁移上云任务完成即可。

    说明

    为了保证数据的一致性,请您在触发上云切换前,停止对源实例写入数据,并等待上云任务完成,最后进行业务连接切换,整个过程大约需要数分钟时间。

附录:备份网关迁移上云和逻辑数据迁移上云的区别

对比项

备份网关迁移上云

逻辑数据迁移上云

迁移原理

采用数据库原生物理备份协议写入数据块到目标端。

采用JDBC逻辑协议获取SQL并写入到目标端。

操作系统要求

仅支持Windows上的SQL Server,且桌面Windows版本不能低于XP,服务器Windows版本不能低于2003。

无限制。

部署要求

需要在数据库所在服务器上安装物理协议网关。

无需安装网关。

网络连通要求

自建库所在服务器是否可以访问到阿里云服务网络,根据网络现状提供了合适方案:

需要开放数据库端口或开通专线访问。

源库权限要求

需要sysadmin角色。

结构迁移和全量迁移需要SELECT权限,增量迁移需要sysadmin权限。更多详情请参见数据库账号的权限要求

目标库版本要求

目标库版本必须大于等于源库版本号。

支持从高版本到低版本,或低版本到高版本。

目标库可访问性

迁移上云期间不可使用。

迁移上云期间允许读写。

源库可以迁移表的限制

不支持内存表,不支持FileStream、FileTables数据字段类型。

限制条件,请参见源库限制

支持的迁移场景

自建数据库迁移上云。

说明

ECS、IDC或其他云服务器中的自建SQL Server数据库。

自建数据库迁移上云、其他云托管数据库迁移上云。

迁移效率

高。

中。

是否支持数据加工ETL

不支持。

支持。

是否支持表级别数据过滤

不支持。

支持。

是否支持库级别过滤

支持。

支持。

附录:新建物理协议网关

准备工作

您需要向NT AUTHORITY\SYSTEM账号赋予Sysadmin角色,可执行如下SQL命令或通过图形化界面设置:

说明

AliyunDBSAgent默认的启动账号为NT AUTHORITY\SYSTEM

  • SQL命令

    ALTER SERVER ROLE [sysadmin] ADD MEMBER [NT AUTHORITY\SYSTEM]
    GO
  • 图形化界面图形化授权界面

注意事项

  • 请确保备份网关安装地域与目标RDS实例处于同一地域。

  • AliyunDBSAgent会将待迁移数据库的恢复模式设置成Full

    说明

    恢复模式为Full模式时,如果数据库持续写入会占用源端磁盘空间,可能造成源端磁盘满的情况。为避免此种情况发生,迁移任务完成后,您可手动执行ALTER DATABASE 数据库名 SET RECOVERY Simple;将恢复模式设置为Simple

  1. 访问数据传输服务DTS控制台

  2. 在左侧导航栏单击数据迁移,在上方选择地域。

  3. 单击创建任务,进入配置源库及目标库信息页面后,依次选择SQL Server > 物理协议,单击新建物理协议网关按钮。

    新建物理协议网关

  4. 在弹出的部署命令对话框中,选择备份网关所在地区备份网关所在网络类型,并复制网关安装命令,手动下载。

    说明

    如通过公网IP访问请选择公网,通过阿里云专线访问选择ECS私网/VPC

    部署命令对话框

  5. 在本地Windows设备或服务器上安装DBS备份网关(AliyunDBSAgent)。

    1. 双击下载文件内的setup.exe应用程序。安装1

    2. 选择安装语言,单击OK,然后单击下一步

    3. 阅读并接受协议条款,单击下一步

    4. 选择DBS备份网关,单击下一步

      DBS备份网关

    5. 选择安装路径,单击下一步并单击确定

    6. 选择备份网关地域,并填写AccessKey IDAccessKey Secret信息,单击下一步ID和秘钥

      重要
      • 请确保备份网关安装的地域和目标RDS SQL Server实例所在地域一致。

      • AccessKey信息以明文方式存放在安装目录下的.\config\dbs-agent.conf中。

    7. 确认要安装的组件包,单击下一步

      备份网关将开始安装,安装时间大约为1~5分钟。

    8. 单击完成

      您可C:\Program Files\aliyun\dbs_agent\logs\agent.log安装目录下查看网关安装情况,如下图表示网关已正常安装。网关的进程心跳

  6. 备份网关安装成功后,在DTS控制台的部署命令对话框中,单击完成安装

  7. 确认备份网关是否已启动。

    1. Windows运行窗口中,输入services.msc,单击确定

      打开系统的服务管理器。

    2. 在服务管理器中,确认该服务是否已启动,如未启动,请右键单击AliyunDBSAgent,在弹出的列表中选择启动确认是否启动

      说明

      系统将默认启动备份网关,您也可以在服务管理器中启动、停止AliyunDBSAgent的服务。

  8. 查看新添加的备份网关。

    您可在数据灾备的备份网关页面,单击右上角的刷新,查看新添加的备份网关。

    进入数据灾备的备份网关页面的步骤

    1. 登录数据管理DMS 5.0

    2. 单击控制台左上角的2023-01-28_15-57-17.png图标,选择全部功能 > 安全与容灾(DBS) > 数据灾备(DBS) > 备份网关

      说明

      若您使用的是非极简模式的控制台,在顶部菜单栏中,选择安全与容灾(DBS) > 数据灾备(DBS) > 备份网关

    说明

    DTS_开头为新添加的备份网关。