全部产品
阿里云办公

DB2到MySQL的数据迁移任务配置指南

更新时间:2018-06-22 23:07:29

使用 数据传输服务 DTS 可以实现DB2到 MySQL 的数据迁移。数据传输服务 DTS (以下简称 DTS) 提供的增量数据同步功能,可以实现在依赖DB2的业务不停服的情况下,平滑完成 DB2到MySQL 的数据迁移工作。

本小节简单介绍使用 DTS 进行 DB2到MySQL 数据迁移的任务配置流程。

迁移步骤

对于 DB2->MySQL 的数据迁移,DTS 支持结构迁移、全量数据迁移及增量数据迁移,这个迁移类型的功能及限制如下:

  • 结构迁移

DTS将表的结构定义迁移到目标实例,包括表上的索引及外键。

  • 全量数据迁移

全量迁移将DB2中的存量数据迁移到目标MySQL实例。

如果用户只进行全量数据迁移,那么迁移过程中DB2实例新增的业务写入不会被同步到目标MySQL实例。如果需要实现迁移过程中,业务更新数据被同步至目标MySQL实例,那么需要选择全量数据迁移+增量数据迁移。

  • 增量数据迁移

增量数据迁移会将全量数据迁移过程中,DB2实例的更新数据同步到目标 MySQL 实例。通过增量数据迁移,可以实现DB2实例在迁移过程中产生的增量数据被实时同步到目标MySQL。如果业务不结束增量数据迁移任务,那么,可以实现DB2跟MySQL之间的长期数据实时同步。

迁移限制

  • 只支持部署在Linux、UNIX、Window系统上的DB2实例
  • 迁移过程中,不支持 DDL 操作
  • 结构迁移只支持表、索引及外键的迁移
  • 当选择增量迁移时,源端的DB2实例需要开启logarchmeth1 或 logarchmeth2

迁移权限要求

当使用 DTS 进行本地 MySQL->RDS for MySQL迁移时,在不同迁移类型,对源端和目标端 MySQL 实例的迁移帐号权限要求如下:

迁移类型 结构迁移 全量迁移 增量迁移
源端DB2实例 CONNECT、SELECT CONNECT、SELECT DBADM
MySQL 实例 读写权限 读写权限 读写权限

迁移流程

DTS 进行 DB2->RDS for Mysql 数据迁移时,为结构对象及数据的迁移顺序如下:

  1. 表结构及索引迁移
  2. 全量数据迁移
  3. 外键迁移
  4. 增量数据迁移

如果任务没有选择增量数据迁移,那么当全量数据迁移完成后,任务列表中的迁移进度为:结构迁移 100%,全量迁移 100%,迁移状态为“迁移中”。此时迁移任务正在进行步骤(3) 中的对象的迁移。此时,请勿手动结束任务,否则会造成迁移数据丢失。

迁移任务配置

下面以 DTS 将DB2实例中的数据迁移到阿里云 RDS For MySQL 实例为例,介绍DB2->MySQL的数据迁移任务配置流程。

准备工作

如果需要进行增量迁移,那么需要确认DB2待迁移数据库的 logarchmeth1 或 logarchmeth2 是否开启,具体确认项如下:

log configuration

如果这里面查询出来的logarchmeth1 和 logarchmeth2 均为OFF, 需要修改logarchmeth1 或 logarchmeth2 的配置,打开归档日志。

开启logarchmeth1 的方法参考官方手册

迁移任务配置

当准备工作完成后,就可以开始配置迁移任务了,下面详细介绍下具体的配置步骤。

  1. 进入 数据传输 DTS 控制台,点击右上角的 创建迁移任务,开始任务配置。
  2. DB2实例及目标MySQL 实例连接信息配置。

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

  • 任务名称

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

  • 源实例连接信息

    • 实例类型:选择 有公网 IP 的自建数据库。 如果DB2自建在阿里云ECS,那么选择 ECS上的自建数据库; 如果DB2可以通过专线访问,那么选择 通过专线接入的本地自建DB
    • 数据库类型:选择 DB2
    • 主机名或 IP 地址:配置DB2 数据库实例的访问地址
    • 端口:DB2 实例监听端口
    • 账号:MySQL 实例访问账号
    • 密码:上面指定的 MySQL 访问账号对应的密码

DB2 Connection

  • 目标 MySQL 实例连接信息

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

RDS Connection

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

  • 迁移类型

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

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

如果迁移过程中,DB2无业务更新,那么可以只进行全量迁移,那么需要选择:结构迁移+全量数据迁移。

  • 迁移对象

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

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

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

4. 预检查

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

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

precheck

5. 启动迁移任务

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

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

至此,完成将DB2数据库实例到MySQL的数据迁移任务配置。