上云无忧 > 文档中心 > 百度智能云数据传输服务 DTS 数据迁移教程
数据传输服务 DTS
百度智能云数据传输服务 DTS 数据迁移教程

文档简介:
结构迁移:结构对象定义语法的迁移,包括表、视图等结构对象的语法迁移。异构数据库迁移时可以实现数据类型的映射,将源库语法调整为目标库对应的语法。全量数据迁移:将源库中的所有数据迁移到目标库中,不包含结构对象定义的语法。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

迁移类型

  • 结构迁移:结构对象定义语法的迁移,包括表、视图等结构对象的语法迁移。异构数据库迁移时可以实现数据类型的映射,将源库语法调整为目标库对应的语法。
  • 全量数据迁移:将源库中的所有数据迁移到目标库中,不包含结构对象定义的语法。如果迁移过程中源库有新增数据,且迁移类型只选择了全量迁移,则新增数据不会迁移到目标库。
  • 增量数据迁移:将源库迁移过程中新增的数据同步到目标库中,主要用于源库和目标库的增量数据实时同步。如果创建数据迁移任务时,同时选择了全量数据迁移和增量数据迁移,则迁移过程中会先将源库中静态数据迁移到目标库,然后将增量数据同步到目标库。增量数据迁移不会自动结束,如果需要结束实时同步,需要在控制台手动结束该迁移任务。

迁移限制

  • 源端必须存在主键,否则目标端将可能出现重复数据
  • 目前不支持存储过程、存储函数、触发器和外键的迁移,需要用户手动迁移
  • 源端binlog_format必须为row
  • 若源端为MySQL 5.6及以上版本,源端binlog_row_image必须为full

迁移权限要求

当源端为公网自建数据库或BCC自建数据库时,用户需要提供一个满足权限要求的迁移账号。

用户可以对准备用于迁移的已有账号进行授权,也可以创建新的账号用于迁移,请参考如下授权语句: GRANT SELECT, LOCK TABLES, REPLICATION SLAVE, REPLICATION CLIENT, SHOW VIEW ON ∗.∗ TO '迁移账号'@'主机名' IDENTIFIED BY '迁移密码'; 其中「迁移账号」和「迁移密码」请按需自行填写;「主机名」可参考 DTS公网IP段 进行填写,实现仅对DTS服务器IP放开访问限制,或填写%对全部IP开放访问。

授权完成后,继续刷新系统权限表,执行FLUSH PRIVILEGES;,确保账号权限立即生效。

创建数据迁移任务

数据迁移任务包含3个步骤:源库及目标库配置 -> 迁移类型及库表筛选 -> 预检查。

  1. 登录百度智能云控制台:
  2. 选择“产品服务->数据传输服务DTS”,进入数据迁移列表。
  3. 点击“新建迁移任务”填写数据迁移任务相关信息。

    说明:

    1. DTS支持的源库类型包括:RDS上的实例、BCC自建数据库和公网自建数据库三种类型。
    2. DTS支持的目标库类型包括:RDS上的实例、BCC自建数据库。
  4. 任务添加后进入迁移类型及库表页签,选择迁移类型及源库对象,通过“添加所选”将需要迁移的源库对象添加到右侧。

    百度智能云支持的数据迁移类型有结构迁移、全量数据迁移和增量数据迁移三种。

    迁移过程中用户可以根据行过滤或者列过滤对表格数据进行筛选。当不填写过滤条件时默认不过滤。

    • 列筛选:当只需要获取部分列的数据和变更时,填写需要获取数据的列名,','分割,语法同数据库标准SQL select条件,如:id,name,data。
    • 行筛选:当只需要获取部分行的数据和变更时,填写行过滤条件,语法同数据库标准SQL where条件,如:id>10 and status='success'。
  5. 点击“保存并预检查”完成新建任务,然后在任务列表查看任务状态。

    • 状态列显示“前置检查通过”,可以勾选并启动迁移任务,任务启动后可以在任务进度列查看迁移进度。
    • 状态列显示“前置检查失败”,点击旁边的按钮查看失败原因并修改,重新启动检查直到成功后再启动迁移任务。

  6. 任务启动后可以通过任务详情页查看每个任务的信息,包括配置信息、运行详情及流量信息。

预检查

在创建完DTS数据迁移任务时,需要对源库和目的库的连通性进行检查。此外启动数据迁移前还会进行详细的内容检查,详细检查项参见以下解释。

  • 源库连通性预检查解释如下:
ping测试 telnet测试 mysql connect测试 解释
成功 成功 成功 连通成功
成功 成功 失败 源数据库连接失败,请查看数据库服务是否开启了对应的端口,并查看授权是否添加,由于百度出口ip不是固定ip,需要对10.%的网段或直接对%授权,查看防火墙设置。
成功 失败 失败 源数据库端口连接失败,请查看数据库服务是否启动,或者是否开启了对应的端口,查看防火墙设置,是否禁止该端口访问。
失败 失败 失败 源ip和DTS服务器之间网络不通,请查看是否填写了外网可以访问到的ip,或者查看防火墙设置。
  • 目的库连通性预检查解释如下:
ping测试 telnet测试 mysql connect测试 提示语
成功 成功 成功 连通成功
成功 成功 失败 目的数据库连接失败,请查看数据库服务是否开启了对应的端口,并查看授权是否添加,由于百度出口ip不是固定ip,需要对10.%的网段或直接对%授权,查看防火墙设置。
成功 失败 失败 目的数据库端口连接失败,请查看数据库服务是否启动,或者是否开启了对应的端口,查看防火墙设置是否禁止该端口访问。
失败 失败 失败 目的ip和DTS服务器之间网络不通,请查看是否填写了外网可以访问到的ip,或者查看防火墙设置。
  • 预检查项、失败原因及处理方法:
预检查问题 失败原因 解决方案
检查数据传输服务器是否能连通源数据库 网络不通、设置了防火墙、mysql未对所有ip授权 检查填写的ip是否在公网可以访问,检查防火墙配置,检查mysql的账号权限
检查数据传输服务器是否能连通目的数据库 目的数据库网络不通,mysql授权问题 检查目的数据是否访问正常,检查mysql的账号权限
检查源数据库的版本号 mysql版本低于5.1 升级mysql到5.1及以上版本
检查目的数据库待迁入的数据库是否可用 目的数据库中的db不存在 创建目的数据库的db:create database dest_db;
检查目的数据库是否只读 目的数据库是只读,不可写入 设置目的数据库可写:set global read_only=0;
检查源数据库的账号权限是否满足迁移要求 源数据库的账号权限不满足迁移要求 增加源数据库账号的权限
检查目的数据库的账号权限是否满足迁移要求 目的数据库的账号权限不满足迁移要求 增加目的数据库账号的权限
检查源库、目标库的连接数是否满足要求 当前剩余的连接数无法满足dts需求 增加数据库最大连接数:set global max_connections=1000;
检查目的库是否存在跟待迁移对象同名的结构对象 目的数据库中跟要迁移的表重名 删除目标数据库中的表,或选择增量迁移
检查源端不同库是否存在同名的结构对象 源端不同的库存在相同的结构对象,如相同的表名 将相同的结构对象分割成不同的dts任务
检查迁移表依赖的外键父表是否迁移 迁移的表的外键依赖的表没有迁移 选择库表信息时,将依赖的表一块迁移
检查迁移表的表结构在目的库是否存在 目标库中不存在要迁移的表结构 在目标库中创建要迁移的表,或者迁移对象增加结构迁移
检查迁移表是否有不支持的存储引擎 迁移的表中有不支持的存储引擎 去掉不支持迁移的表
检查源库和目标库中SQL_MODE是否合法 源库和目标库的sql_mode不合法 改成合法的sql_mode,详见支持的sql_mode
检查目的库中表是否为空 目的库中的表不为空 清空目标数据库的表的数据
相似文档
  • 启动传输任务前,需要确保源端或目标端放开了对 DTS 服务器的访问限制。本文提供各地域 DTS 服务器IP白名单,方便您进行相应的访问授权。
  • 本文适用于使用百度智能云数据传输服务DTS(以下简称 DTS), 将自建PostgreSQL中的数据迁移至DTS已经支持的数据目标端的场景。 不支持包含时区类型列的时间戳。 增量同步不支持同步关系型数据库的DDL语句。
  • 本文适用于使用百度智能云数据传输服务DTS(以下简称DTS),支持自建SQL Server数据库为源端的数据迁移任务。 数据库恢复模式设置为Full。 增量迁移任务使用变更数据捕获(Change Data Capture,以下简称CDC)功能, 不同版本对CDC功能存在限制。
  • 本文适用于使用百度智能云数据传输服务DTS(以下简称 DTS),将自建 Oracle 实例中的数据迁移至 DTS 已经支持的数据目标端的场景。增量同步不支持同步关系型数据库的DDL语句。
  • 本文适用于使用百度智能云数据传输服务DTS(以下简称DTS),将自建MySQL实例或云数据库RDS MySQL实例中的数据迁移至DTS已经支持的数据目标端的场景。 如果源库中待迁移的表没有主键或唯一约束,且所有字段没有唯一性,可能会导致目标数据库中出现重复数据。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部