全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网
数据传输服务DTS

从 Oracle 不停机迁移到 DRDS

更新时间:2017-10-18 10:15:11

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

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

迁移步骤

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

  • 全量数据迁移
    DTS 会将源数据库迁移对象包含的数据全部迁移到目标实例。如果迁移任务的迁移类型只选择了全量数据迁移,那么迁移过程中,本地 Oracle 库在全量迁移过程中新增的数据不一定能够被迁移到目标的 DRDS 实例中,在全量迁移过程中发生的数据修改和删除也不一定能够被同步到目标的 DRDS 实例中。所以,为保证迁移数据一致性,对于只选择全量数据迁移的任务,在迁移过程中,Oracle 实例需停止写入,处于只读状态。

  • 增量数据迁移

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

迁移权限要求

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

迁移类型 结构迁移 全量迁移 增量数据迁移
本地 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 数据库及目标 DRDS 实例的迁移账号。迁移账号所需权限详见上文的 迁移权限要求

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

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

迁移步骤

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

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

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

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

    • 任务名称

      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。 对于需要进行增量迁移的无主键表,用户需要在迁移的目标 DRDS 实例中创建对应的表时,手工添加这个列。在迁移过程中,这个列由 DTS 主动维护,该列在迁移过程中不能删除,否则会导致迁移失败。
    如果选择新增列 alibaba_dts_row_id,那么可以保证无主键表的迁移不产生重复数据,保证迁移数据跟源实例数据完全一致,否则无主键表可能会出现比源实例多出部分数据的情况。

  5. 任务预检查

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

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

    预检查失败

  6. 启动迁移任务

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

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

至此,完成将本地 Oracle 数据库实例到 DRDS 实例的数据迁移任务配置。

本文导读目录