472
windows
使用 DTS 迁移 SQL Server 数据__迁移数据_快速入门(SQL Server)_云数据库 RDS 版-阿里云
使用数据传输服务 (DTS) 将本地数据库迁移到 RDS for SQL Server,可以实现应用不停服务的情况下,平滑完成数据库的迁移工作。
背景信息
DTS 支持 SQL Server 数据结构迁移和全量迁移。
结构迁移
DTS 会将本地数据库的结构定义迁移到目标实例。目前DTS支持结构迁移的对象有:表、视图、表触发器、同义词、SQL 存储过程、SQL 函数、自定义类型、plan guid、rule、default。
全量迁移
DTS 会将本地数据库迁移对象的数据全部迁移到目标实例。如果在迁移过程中有增量更新的话,这些增量不会被迁移到目标库。所以建议在业务无写入时,使用 DTS 进行全量数据迁移。
迁移限制
将本地数据库迁移到 RDS 上有以下限制:
- 迁移过程中,不支持 DDL 操作
- 结构迁移不支持 assemblies、库级存储过程、service broker、全文索引、全文目录、分布式 schema、分布式函数、CLR 标量函数、CLR 标值函数、内部表、聚合函数和系统的迁移
- 如果使用了对象名映射功能后,依赖这个对象的其他对象可能迁移失败
前提条件
已完成 RDS 实例数据库的准备,可参见 设置连接模式 和 创建数据库和账号。
操作步骤
本例以有公网 IP 的本地数据库迁移到 RDS 上为例。
准备本地数据
在正式迁移之前,需要先在本地数据库和RDS实例中创建迁移账号,并在RDS实例中创建要迁移的数据库,并将要迁移的数据库的读写权限授权给迁移账号。不同的迁移类型需要不同的权限,如下表所示。
迁移类型 | 结构迁移 | 全量迁移 |
---|---|---|
本地数据库 | select | select |
RDS 实例 | 读写权限 | 读写权限 |
在本地数据库中创建迁移账号。
create login username with password='password', default_database=mydb;
go
create user username for login username with default_schema=dbo;
go
参数说明:
- username:要创建的账号
- password:该账号的登录密码
- mydb:默认连接的数据库
- dbo:默认的数据表
例:要创建账号为 William,密码为 Changme123 的账号访问数据 mydb 的数据表 dbo,命令如下:
create login William with password='Changme123', default_database=mydb;
go
create user William for login William with default_schema=dbo;
go
在本地数据库中给迁移账号授权,本地数据库中迁移账号的权限要求请参见上表。
GRANT privileges ON tablename TO username WITH GRANT OPTION;
参数说明:
- privileges:该账号的操作权限,如 SELECT、INSERT、UPDATE 等。如果要授权该账号所有权限,则使用 ALL
- tablename:表名。如果要授权该账号所有的表权限,则使用通配符 *
- username:要授权的账号名
- WITH GRANT OPTION:授权该账号能使用GRANT命令,该参数为可选
例:授权账号 William 对所有数据库和表的所有权限,命令如下:
GRANT ALL ON * TO William;
正式迁移操作
在 RDS 管理控制台 上单击 迁移数据库,进入DTS,如下图所示。
单击 创建在线迁移任务,进入 创建迁移任务 页面,如下图所示。
输入任务名称、本地数据库信息和目标数据库信息,单击 授权白名单并进入下一步,如下图所示。
- 任务名称:自定义任务名称,可以保持默认值
- 源库信息
- 实例类型:本地数据库的实例类型,可以选择 有公网 IP 的自建数据库、ECS 上的自建数据库、RDS 实例、云数据库 MongoDB
- 数据库类型:本地数据库的类型,可以选择 Oracle、MySQL、SQLServer、PostgreSQL、MongoDB
- 主机名或IP地址:本地数据库的公网地址
- 端口:本地数据库的公网端口
- 账号:本地数据库的迁移账号
- 密码:本地数据库迁移账号对应的密码
- 目标库信息
- 实例类型:默认为 RDS 实例
- RDS实例ID:目标 RDS 实例的 ID。点击下拉菜单将自动联想当前登录管理控制台的账号的 RDS 实例,点击选择所需要的实例
- 数据库名称:要迁移到目标数据库的名称
- 账号:目标 RDS 数据库的迁移账号
- 密码:目标 RDS 数据库迁移账号对应的密码
择迁移类型,并在 迁移对象 中选择要迁移的对象,单击 > 将要迁移的对象放入 已选择 中,单击 预检查并启动,如下图所示。
注意
- 数据迁移只会将本地数据库的数据(结构)复制一份到目标数据库,并不会对本地数据库数据(结构)造成影响
- 数据迁移过程中,不支持DDL操作,如进行DDL操作可能导致迁移失败
- DTS增量迁移的时间最长支持15天,如果超过15天不停止任务,系统资源可能被回收
如果要修改迁移对象在目标数据库上的名字,可以在 已选择 列表右侧单击 编辑 ,修改已选择的对象名称,如上图中4所示。
说明: 以下以预检查不通过为例进行描述,如果预检查通过,请直接参见步骤 8。
系统显示预检查结果,如下图所示。
单击 检测结果 为 失败 的检测项后的 !,查看失败详细信息,根据失败详细信息完成错误排查。
错误排查完毕后,在 迁移任务列表 页面,选择当前迁移任务,单击 启动,如下图所示。
系统预检查通过后,单击 确定,自动进行迁移任务,如下图所示。
后续操作
为了保证本地数据库安全,请在数据迁移完成后,删除本地数据库和 RDS 实例中的迁移账号。
最后更新:2016-11-28 15:11:23
上一篇:
创建数据库和帐号(SQL Server 2012)__设置实例基础配置_快速入门(SQL Server)_云数据库 RDS 版-阿里云
下一篇:
使用 FTP 迁移 SQL Server 数据__迁移数据_快速入门(SQL Server)_云数据库 RDS 版-阿里云
用户操作限制___售后支持计划_支持计划-阿里云
简单操作 OSS 文件__Spark_开发人员指南_E-MapReduce-阿里云
每个连接达不到带宽峰值__带宽峰值常见问题_常见问题_负载均衡-阿里云
鉴权规则__RAM子用户访问_API-Reference_日志服务-阿里云
阿里云大数据计算服务香港开服,将引入更多人工智能服务
查询API响应时间数据__API管理相关接口_API_API 网关-阿里云
Spark + ODPS__Spark_开发人员指南_E-MapReduce-阿里云
机器翻译服务协议__相关协议_平台介绍_数加平台介绍-阿里云
数据开发常见问题__常见问题_大数据开发套件-阿里云
地域___产品简介_云服务器 ECS-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云