全部产品
数据传输服务DTS

从Oracle迁移到DRDS

更新时间:2017-08-18 11:25:43   分享:   

使用数据传输DTS可以将本地的Oracle的数据迁移至DRDS实例。DTS可以实现全量数据迁移以及增量数据迁移。通过增量数据迁移,可以在不影响源Oracle的情况下,实现Oracle数据库的不停服迁移。

本小节简单介绍使用DTS进行Oracle->DRDS数据迁移的任务配置流程。

迁移步骤

对于Oracle->DRDS的迁移,全量数据迁移及全量数据迁移的机制如下。

  • 全量数据迁移
    DTS会将源数据库迁移对象在的数据全部迁移到目标实例。如果迁移任务的迁移类型只选择了全量数据迁移,那么迁移过程中,本地Oracle库新增的数据不一定能够被迁移到MySQL中。所以,为保证迁移数据一致性,对于只选择全量数据迁移的任务,迁移过程中,Oracle实例需停止写入。

  • 增量数据迁移

    增量迁移过程中,DTS会监听并获取源Oracle实例的变更redo log,然后将增量变更数据实时同步到目标DRDS实例, 通过增量数据迁移可以实现目标DRDS实例同源Oracle实例的实时数据同步。

迁移权限要求

当使用DTS进行Oracle迁移时,在不同迁移类型情况下,源跟目标数据库的迁移帐号权限要求如下:

迁移类型 结构迁移 全量迁移 增量数据迁移
本地Oracle实例 schema的owner schema的owner SYSDBA
目的DRDS实例 待迁入db的读写权限 待迁入db的读写权限 待迁入db的读写权限

迁移前置条件

  • Oracle版本为10g,11g,12c。
  • Oracle 开启supplement log,且要求 supplemental_log_data_pk,supplemental_log_data_ui 开启。
  • Oracle要求开启archive log。

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

创建DRDS实例迁移对象

在数据迁移过程中,如果待迁移的数据库、数据表在目标DRDS实例中不存在,用户需要在配置迁移任务之前,先手动在目标DRDS中创建好数据库和对应的表。

创建迁移帐号

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

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

DRDS迁移账号的创建及授权操作详见DRDS使用手册

迁移步骤

当上面的所有前置条件都配置完成后,就可以开始配置迁移任务。下面详细介绍下具体的迁移步骤。

  1. 进入数据传输DTS控制台,单击右上角的创建迁移任务,正式开始任务配置。

  2. 本地Oracle及目标DRDS实例的连接信息配置

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

    • 任务名称

      DTS为每个任务自动生成一个任务名称,任务名称没有唯一性要求。您可以根据需要修改任务名称,建议为任务配置具有业务意义的名称,便于后续的任务识别。

    • 源实例信息

      • 实例类型:选择 有公网IP的自建数据库
      • 数据库类型: 选择 Oracle
      • 主机名或IP地址: 配置Oracle访问地址,这个地址必须为公网访问方式。
      • 端口:Oracle实例的监听端口。
      • SID:Oracle实例的SID。
      • 账号:Oracle实例的连接账号。
      • 密码:上面Oracle连接账号对应的密码。
    • 目标实例信息

      • 实例类型:选择 DRDS实例
      • DRDS实例ID: 配置迁移的目标DRDS实例的实例ID。
      • DRDS数据库:配置目标DRDS实例的数据库。
      • 账号:DRDS实例的连接账号。
      • 密码:上面DRDS实例连接账号对应的密码。

      当配置完连接信息后,单击右下角 授权白名单并进入下一步 进行白名单授权。

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

    迁移类型包括:全量数据迁移、增量数据迁移。默认选择 全量数据迁移,如果需要实现Oracle->DRDS的零停机迁移,需要选择全量数据迁移+增量数据迁移

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

    当配置完迁移对象及迁移类型后,即进入无主键表迁移方式的选择。

  4. 无主键表迁移方式选择

    为了支持Oracle中无主键表的增量迁移,您需要选择在DRDS中,对于无主键表是否自动新增列:alibaba_dts_row_id。 这个列由DTS主动维护,迁移过程中不能删除,否则会导致迁移失败。
    如果新增列alibaba_dts_row_id,那么可以保证无主键表的迁移不产生重复数据,保证迁移数据跟源实例数据完全一致,否则无主键表可能会出现比源实例数据多的情况。

  5. 任务预检查

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

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

    预检查失败

  6. 启动迁移任务

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

    当任务进入增量数据迁移阶段,任务不会自动停止,且一旦源Oracle实例有增量写入,增量数据就会自动同步到目标RDS实例。增量数据迁移是个动态同步的过程,所以建议在增量迁移达到无延迟状态时,在目标数据库上进行业务验证,如果验证成功,那么可以停掉迁移任务,然后将业务切换到目标数据库。

至此,完成将本地Oracle数据库到RDS For MySQL的数据迁移任务配置。

本文导读目录
本文导读目录
以上内容是否对您有帮助?