所有文档

          数据传输服务 DTS

          数据迁移

          迁移类型

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

          迁移限制

          • 源端必须存在主键,否则目标端将可能出现重复数据
          • 目前不支持存储过程、存储函数、触发器和外键的迁移,需要用户手动迁移
          • 源端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 服务器公网 IP 段