开发者社区> 问答> 正文

用户指南-数据迁移-使用 DTS 迁移数据-使用 DTS 迁移 SQL Server 数据


使用数据传输服务 (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 实例数据库的准备,可参见 设置内外网地址创建数据库和账号SQL Server 2008 R2版

操作步骤


本例以有公网 IP 的本地数据库迁移到 RDS 上为例。准备本地数据
在正式迁移之前,需要先在本地数据库和RDS实例中创建迁移账号,并在RDS实例中创建要迁移的数据库,并将要迁移的数据库的读写权限授权给迁移账号。不同的迁移类型需要不同的权限,如下表所示。
[tr=rgb(51, 205, 229)][td]迁移类型 结构迁移全量迁移本地数据库selectselectRDS 实例读写权限读写权限
  1. 在本地数据库中创建迁移账号。create login username with password='password', default_database=mydb;gocreate 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;gocreate 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;
  • 展开
    收起
    梨好橙 2018-09-07 23:12:10 1804 0
    0 条回答
    写回答
    取消 提交回答
    问答排行榜
    最热
    最新

    相关电子书

    更多
    SQL Server在电子商务中的应用与实践 立即下载
    GeoMesa on Spark SQL 立即下载
    原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载