您可以使用数据传输服务(DTS)实现各种数据源之间的数据迁移。 数据迁移通常用于需要最小化停机时间的一次性迁移。 数据迁移还提供如下ETL功能:对象名映射和数据过滤。

数据迁移阶段

数据迁移过程包括三个阶段,即结构迁移、全量数据迁移和增量数据迁移。 您可以在创建数据迁移任务时选择所需的阶段。 但是,如果要进行最小化停机迁移,您必须选择所有三个阶段。

迁移阶段 说明
结构迁移

在结构迁移阶段,DTS会将结构对象从源数据库迁移到目标数据库,包括表、视图、触发器和存储过程。

对于异构数据库之间的结构迁移,DTS会将待迁移结构对象的数据类型转换为目标数据库支持的数据类型。 例如,DTS会将Oracle数据库中的NUMBER数据类型转换为MySQL数据库中的DECIMAL数据类型。

全量数据迁移 在全量数据迁移阶段,DTS会将源数据库的存量数据全部迁移到目标数据库。 如果在配置数据迁移任务时,仅选择了结构迁移和全量数据迁移,那么在迁移过程中,源库的新增数据不会被迁移至目标库。
说明 为保证数据一致性,建议在全量数据迁移阶段停止向源库中写入新的数据。 如需实现不停机迁移,您需要在配置数据迁移任务时,同时选择结构迁移、全量数据迁移和增量数据迁移。
增量数据迁移 DTS会跟踪源数据库的事务日志,以捕获全量数据迁移阶段产生的数据更新。 在全量数据迁移阶段后,DTS会在目标数据库中重新应用这些数据更新。
说明 增量数据迁移阶段是一个持续的复制过程。 因此,启用增量数据迁移的迁移任务不会自动结束。 您需要手动结束迁移任务。

ETL功能

数据迁移支持以下ETL功能:

  • 对象名映射:您可以对迁移到目标实例中的库、表或列进行重命名操作,从而实现不同名称的对象之间的数据迁移。
  • 数据过滤:您可以对要迁移的表设置SQL条件,只迁移符合特定条件的数据记录。 例如,您可以指定时间范围,只迁移最新数据。

报警

创建数据迁移任务后,您可以接收迁移异常报警,一旦迁移任务出现异常,您可以立即采取行动。

限流

为了最大限度地减少对正常操作的影响,您可以在数据迁移任务的全量数据迁移阶段设置传输速率,以便数据迁移不会使您的源数据库超过正常负载。

数据迁移任务生命周期

若要完成数据迁移、数据同步或数据订阅,您必须创建数据传输任务。 创建数据迁移任务时,您需要配置源数据库、目标数据库、迁移阶段和要迁移的对象。

数据迁移任务的状态如下表所示。

任务状态 说明 可执行的操作
未启动 已配置迁移任务,但未执行预检查。 执行预检查;删除迁移任务
预检中 正在执行预检查。 删除迁移任务
预检通过 迁移任务已通过预检查,但尚未启动。 启动或删除迁移任务
迁移中 正在迁移数据。 暂停、结束或删除迁移任务
迁移失败 迁移任务异常。 您可以根据迁移任务的进度判断在哪个阶段发生异常。 删除迁移任务
暂停中 迁移任务已暂停。 恢复或删除迁移任务
完成 迁移任务已完成,或者您已单击“结束”手动结束了迁移任务。 删除迁移任务

如果任务处于迁移失败状态,系统将在7天之内重新尝试执行该任务。 如果需要停止迁移,您需要手动释放或结束该任务。

更多信息