全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 更多
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 智能硬件
数据传输服务DTS

通过专线接入阿里云的本地自建数据库的上云迁移

更新时间:2018-05-14 00:41:05

数据传输服务 DTS (以下简称 DTS)支持通过专线接入阿里云的本地自建数据库的上云迁移。本小节以本地 MySQL 到 RDS for MySQL 实例的迁移为例,介绍如何通过 DTS 进行通过专线接入阿里云的本地自建数据库上云迁移任务的配置。

迁移前置条件

在配置迁移任务之前,需要配置线下IDC跟DTS服务器之间的网络,包括:
1. 确保专线接入阿里云的VPC可以访问本地IDC的自建数据库
2. 在专线的边界路由器添加指向DTS IP段的路由。在边界路由器详情页,单击添加路由,填写参数。:

  • 目标网段:阿里云VPC所在地域对应的DTS地址段
  • 下一跳方向:指向VPC方向
  • 下一跳:选择数据包的出口,即VBR的路由器接口

3. 在物理专线客户侧的接入设备上,添加指向DTS IP段的静态路由,配置示例如下:

ip route DTS地址段 {阿里侧互联ip}

例如,DTS地址段为100.104.52.0/24,边界路由器的阿里侧互联IP为10.100.0.1,那么静态路由为:
ip route 100.104.52.0/24 10.100.0.1

上面添加的DTS地址段为专线接入阿里云VPC所在地域对应的DTS地址段,目前各个地域支持通过专线进行数据库迁移的 DTS IP 地址段如下:

地域 DTS IP 地址段
杭州 100.104.52.0/24
北京 100.104.183.0/24
青岛 100.104.72.0/24
上海 100.104.205.0/24
深圳 100.104.205.0/24
上海金融云 100.104.175.0/24
深圳金融云 100.104.72.0/24
美西 100.104.175.0/24
香港 100.104.233.0/24
新加坡 100.104.188.0/24
马来西亚 100.104.5.0/24

迁移任务配置

下面详细介绍使用 DTS 将本地的 MySQL 迁移到 RDS for MySQL 的任务配置流程。

RDS 实例数据库创建

在数据迁移过程中,如果待迁移的数据库在目标 RDS 实例中不存在,那么 DTS 自动会创建。但是对于如下两种情况,用户需要在配置迁移任务之前,手动创建数据库。

  1. 数据库名称不符合:RDS 定义规范(由小写字母、数字、下划线、中划线组成,字母开头,字母或数字结尾,最长 64 个字符)。
  2. 待迁移数据库,其实例名与目标 RDS 实例中名称不同。

对于这两种情况,用户需要在配置迁移任务之前,先在 RDS 控制台完成数据库创建。具体参考RDS 数据库创建流程

迁移账号创建

迁移任务配置,需要提供本地 MySQL 数据库及目标 RDS for MySQL 实例的迁移账号。迁移账号所需权限详见上文的 迁移权限要求 章节。

如果源 MySQL 实例迁移账号尚未创建,那么您可以参考 Grant 语法说明,创建满足权限要求的迁移账号。

如果目标 RDS 实例迁移账号尚未创建,那么您可以参考 RDS 账号创建流程,创建对待迁入 RDS for MySQL 数据库实例有读写权限的迁移账号。

其他准备工作

如果需要进行增量迁移,那么需要确认源库的 binlog 是否开启,格式是否满足要求。具体确认项如下。

  1. 确认源库的 binlog 是否开启。

    确认源库开启 binlog

    如果这里面查询出来的 log_bin=OFF,那么说明源库没有开启 binlog,这个时候如果需要使用增量迁移的话,需要修改本地 MySQL 的 binlog 配置,打开 binlog 日志。

    1. 开启二进制日志 binlog,修改 log_bin=mysql_bin。
    2. 设置 binlog 模式为row,修改 binlog_format=row。
    3. 配置 server_id 大于 1,即 server_id=某一个大于 1 的整数。
    4. 如果版本为 5.6,修改 binlog_row_image=full。
    5. 修改完成后,重启 MySQL 进程。
  2. 确认源库的 binlog 格式为 row 模式。

    确认源库 binlog 格式为 row 模式

    使用上面的命令确认本地 MySQL 的 binlog 格式是否为 row,如果查询出来的结果不为 row 的话,那么通过如下的参数设置命令将模式修改为 row。

    修改源库 binlog 格式为 row

    当修改完成后,最好将已经连接到 MySQL 实例的连接 KILL 掉重连,否则可能出现其他的连接依然使用 statement 格式记录 binlog 日志。

  3. 当本地 MySQL 版本大等于 5.6.2 时,确认源库的 binlog_row_image=full。

    确认源库 binlog_row_image

    如果查询出来的结果不为 full 的话,那么通过如下的参数设置命令将其修改为 full。

    修改源库 binlog_row_image 为 full

迁移任务配置

当数据库、迁移账号都创建完成后,就可以开始配置迁移任务了。下面详细介绍下具体的配置步骤。

  1. 进入DTS 控制台,单击右上角的创建迁移任务,开始任务配置
  2. 填写本地 MySQL 及目标 RDS for MySQL 实例连接信息配置

    在这个步骤中,主要配置迁移任务名称,迁移源实例及目标实例连接信息。其中:

    • 任务名称

      默认情况下,DTS 为每个任务自动生成一个任务名称。任务名称没有唯一性要求,您可以修改这个名称,为任务配置一个具有业务意义的名称,便于后续的任务识别。

    • 源实例连接信息

      • 实例类型:选择 通过专线接入阿里云的本地 DB
      • 实例地区:选择 专线 接入阿里云的接入点,例如接入阿里云的北京,那么选择 华北2 即可。
      • 对端专有网络:专线 接入阿里云的 VPC ID
      • 数据库类型:选择 MySQL
      • 主机名或IP地址:配置本地 MySQL 数据库访问地址,这个地址为本地局域网访问地址
      • 端口:本地 MySQL 实例监听端口
      • 数据库账号:本地 MySQL 实例访问账号
      • 数据库密码:上面指定的 MySQL 访问账号对应的密码
    • 目标RDS实例连接信息。

      • 实例类型:选择 RDS 实例
      • RDS 实例 ID: 配置迁移的目标 RDS for MySQL 实例的实例 ID。 DTS 支持经典网络和 VPC 网络的 RDS for MySQL 实例
      • 数据库账号:RDS for MySQL 实例的连接账号
      • 数据库密码:上面指定的数据库账号对应的密码

      专线接入配置方式

  3. 迁移对象及迁移类型配置

    • 迁移类型

      DTS 支持 结构迁移、全量数据迁移、增量数据迁移

      如果需要进行不停机迁移,那么需要选择:结构迁移+全量数据迁移+增量数据迁移。

      如果只进行全量迁移,那么需要选择:结构迁移+全量数据迁移。

    • 迁移对象

      迁移对象,需要选择您要迁移的对象。迁移对象选择的粒度可以为:库、表、列三个粒度。

      默认情况下,对象迁移到 RDS for MySQL 实例后,对象名跟本地 MySQL 数据库实例一致。如果您迁移的对象在源实例跟目标实例上名称不同,那么需要使用 DTS 提供的对象名映射功能,详细使用方式可以参考库表列映射

      当配置完迁移对象及迁移类型后,即进入任务启动前的预检查步骤

  4. 预检查

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

    如果预检查失败,那么可以点击具体检查项后的按钮,查看具体的失败详情,并根据失败原因修复后,重新进行预检查。

    预检查失败

  5. 启动迁移任务

    当预检查通过后,我们可以启动迁移任务,任务启动后,可以到任务列表中查看任务具体的迁移状态及进度。

    增量数据迁移是个动态同步的过程,所以建议在增量迁移达到无延迟状态时,在目标数据库上进行业务验证,如果验证成功,那么可以停掉迁移任务,然后将业务切换到目标数据库。

    至此,完成将本地 MySQL 数据库到阿里云 RDS for MySQL 数据库实例的数据迁移任务配置。

本文导读目录