如果迁移的源数据库类型为自建Oracle,您需要在配置具体的迁移任务前,参考本文的注意事项及限制,以保障数据迁移任务的正常运行。

源库为Oracle的迁移方案概览

根据如下迁移方案,查看迁移任务的注意事项及限制:

自建Oracle迁移至PolarDB O引擎

具体注意事项及限制如下:
类型 说明
源库限制
  • 带宽要求:源库所属的服务器需具备足够出口带宽,否则将影响数据迁移速率。
  • 如自建Oracle为RAC架构,仅支持作为具有公网IP的自建库接入,不支持其他接入方式(例如ECS、专线、VPN网关、智能接入网关等)。
  • 迁移对象要求:
    • 待迁移的表需具备主键或唯一约束,且字段具有唯一性,否则可能会导致目标数据库中出现重复数据。
    • 如果您的自建Oracle版本为12c及以上,待迁移表的名称长度需不超过30个字节。
    • 如迁移对象为表级别,且需进行编辑(如表列名映射),则单次迁移任务仅支持迁移至多1000张表。当超出数量限制,任务提交后会显示请求报错,此时建议您拆分待迁移的表,分批配置多个任务,或者配置整库的迁移任务。
  • 如需进行增量迁移,Redo Log、Archive Log:
    • 需开启。
    • 如为增量迁移任务,DTS要求源数据库的Redo Log、Archive Log保存24小时以上,如为全量迁移和增量迁移任务,DTS要求源数据库的Redo Log、Archive Log至少保留7天以上(您可在全量迁移完成后将Redo Log、Archive Log保存时间设置为24小时以上),否则DTS可能因无法获取Redo Log、Archive Log而导致任务失败,极端情况下甚至可能会导致数据不一致或丢失。由于您所设置的Redo Log、Archive Log保存时间低于DTS要求的时间进而导致的问题,不在DTS的SLA保障范围内。

  • 源库的操作限制:
    • 在库表结构迁移和全量迁移阶段,请勿执行库或表结构变更的DDL操作,否则数据迁移任务失败。
    • 如仅执行全量数据迁移,请勿向源实例中写入新的数据,否则会导致源和目标数据不一致。为实时保持数据一致性,建议选择结构迁移、全量数据迁移和增量数据迁移。
其他限制
  • 执行数据迁移前需评估源库和目标库的性能,同时建议业务低峰期执行数据迁移。否则全量数据迁移时DTS占用源和目标库一定读写资源,可能会导致数据库的负载上升。
  • 由于全量数据迁移会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量迁移完成后目标数据库的表存储空间会比源实例的表存储空间大。
  • DTS会尝试恢复七天之内迁移失败任务。因此业务切换至目标实例前,请务必结束或释放该任务,或者将DTS访问目标实例账号的写权限用revoke命令回收掉。避免该任务被自动恢复后,源端数据覆盖目标实例的数据。

自建Oracle迁移至MySQL

如果迁移的目标数据库类型为MySQL,如RDS MySQL、自建MySQL,具体注意事项及限制如下:
类型 说明
源库限制
  • 带宽要求:源库所属的服务器需具备足够出口带宽,否则将影响数据迁移速率。
  • 如自建Oracle为RAC架构,仅支持作为具有公网IP的自建库接入,不支持其他接入方式(例如ECS、专线、VPN网关、智能接入网关等)。
  • 迁移对象要求:
    • 待迁移的表需具备主键或唯一约束,且字段具有唯一性,否则可能会导致目标数据库中出现重复数据。
    • 如果您的自建Oracle版本为12c及以上,待迁移表的名称长度需不超过30个字节。
    • 如迁移对象为表级别,且需进行编辑(如表列名映射),则单次迁移任务仅支持迁移至多1000张表。当超出数量限制,任务提交后会显示请求报错,此时建议您拆分待迁移的表,分批配置多个任务,或者配置整库的迁移任务。
  • 如需进行增量迁移,Redo Log、Archive Log:
    • 需开启。
    • 如为增量迁移任务,DTS要求源数据库的Redo Log、Archive Log保存24小时以上,如为全量迁移和增量迁移任务,DTS要求源数据库的Redo Log、Archive Log至少保留7天以上(您可在全量迁移完成后将Redo Log、Archive Log保存时间设置为24小时以上),否则DTS可能因无法获取Redo Log、Archive Log而导致任务失败,极端情况下甚至可能会导致数据不一致或丢失。由于您所设置的Redo Log、Archive Log保存时间低于DTS要求的时间进而导致的问题,不在DTS的SLA保障范围内。

  • 源库的操作限制:
    • 在库表结构迁移和全量迁移阶段,请勿执行库或表结构变更的DDL操作,否则数据迁移任务失败。
    • 如仅执行全量数据迁移,请勿向源实例中写入新的数据,否则会导致源和目标数据不一致。为实时保持数据一致性,建议选择结构迁移、全量数据迁移和增量数据迁移。
其他限制
  • 执行数据迁移前需评估源库和目标库的性能,同时建议业务低峰期执行数据迁移。否则全量数据迁移时DTS占用源和目标库一定读写资源,可能会导致数据库的负载上升。
  • 由于全量数据迁移会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量迁移完成后目标数据库的表存储空间会比源实例的表存储空间大。
  • DTS会尝试恢复七天之内迁移失败任务。因此业务切换至目标实例前,请务必结束或释放该任务,或者将DTS访问目标实例账号的写权限用revoke命令回收掉。避免该任务被自动恢复后,源端数据覆盖目标实例的数据。
特殊情况 当目标库为RDS MySQL时
  • RDS MySQL实例对表名的英文大小写不敏感,如果使用大写英文建表,RDS MySQL会先把表名转为小写再执行建表操作。

    如果源Oracle数据库中存在表名相同仅大小写不同的表,可能会导致迁移对象重名并在结构迁移中提示“对象已经存在”。如果出现这种情况,请在配置迁移对象的时候,使用DTS提供的对象名映射功能对重名的对象进行重命名,将表名转为大写,详情请参见库表列映射

  • DTS会自动在RDS MySQL中创建数据库,如果待迁移的数据库名称不符合RDS MySQL的定义规范,您需要在配置迁移任务之前在RDS MySQL中创建数据库。相关操作,请参见创建数据库

自建Oracle迁移至PolarDB MySQL

如果迁移的目标集群为PolarDB MySQL,具体注意事项及限制如下:
类型 说明
源库限制
  • 带宽要求:源库所属的服务器需具备足够出口带宽,否则将影响数据迁移速率。
  • 如自建Oracle为RAC架构,仅支持作为具有公网IP的自建库接入,不支持其他接入方式(例如ECS、专线、VPN网关、智能接入网关等)。
  • 迁移对象要求:
    • 待迁移的表需具备主键或唯一约束,且字段具有唯一性,否则可能会导致目标数据库中出现重复数据。
    • 如果您的自建Oracle版本为12c及以上,待迁移表的名称长度需不超过30个字节。
    • 如迁移对象为表级别,且需进行编辑(如表列名映射),则单次迁移任务仅支持迁移至多1000张表。当超出数量限制,任务提交后会显示请求报错,此时建议您拆分待迁移的表,分批配置多个任务,或者配置整库的迁移任务。
  • 如需进行增量迁移,Redo Log、Archive Log:
    • 需开启。
    • 如为增量迁移任务,DTS要求源数据库的Redo Log、Archive Log保存24小时以上,如为全量迁移和增量迁移任务,DTS要求源数据库的Redo Log、Archive Log至少保留7天以上(您可在全量迁移完成后将Redo Log、Archive Log保存时间设置为24小时以上),否则DTS可能因无法获取Redo Log、Archive Log而导致任务失败,极端情况下甚至可能会导致数据不一致或丢失。由于您所设置的Redo Log、Archive Log保存时间低于DTS要求的时间进而导致的问题,不在DTS的SLA保障范围内。

  • 源库的操作限制:
    • 在库表结构迁移和全量迁移阶段,请勿执行库或表结构变更的DDL操作,否则数据迁移任务失败。
    • 如仅执行全量数据迁移,请勿向源实例中写入新的数据,否则会导致源和目标数据不一致。为实时保持数据一致性,建议选择结构迁移、全量数据迁移和增量数据迁移。
其他限制
  • 执行数据迁移前需评估源库和目标库的性能,同时建议业务低峰期执行数据迁移。否则全量数据迁移时DTS占用源和目标库一定读写资源,可能会导致数据库的负载上升。
  • 由于全量数据迁移会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量迁移完成后目标数据库的表存储空间会比源实例的表存储空间大。
  • DTS会尝试恢复七天之内迁移失败任务。因此业务切换至目标实例前,请务必结束或释放该任务,或者将DTS访问目标实例账号的写权限用revoke命令回收掉。避免该任务被自动恢复后,源端数据覆盖目标实例的数据。
特殊情况 当目标库为PolarDB MySQL时
  • PolarDB MySQL集群对表名的英文大小写不敏感,如果使用大写英文建表,PolarDB MySQL会先把表名转为小写再执行建表操作。

    如果源Oracle数据库中存在表名相同仅大小写不同的表,可能会导致迁移对象重名并在结构迁移中提示“对象已经存在”。如果出现这种情况,请在配置迁移对象的时候,使用DTS提供的对象名映射功能对重名的对象进行重命名,将表名转为大写,详情请参见库表列映射

  • DTS会自动在PolarDB MySQL中创建数据库,如果待迁移的数据库名称不符合PolarDB MySQL的定义规范,您需要在配置迁移任务之前在PolarDB MySQL中创建数据库。相关操作,请参见管理数据库

自建Oracle迁移至AnalyticDB PostgreSQL

如果迁移的目标实例为AnalyticDB PostgreSQL,具体注意事项及限制如下:
类型 说明
源库限制
  • 带宽要求:源库所属的服务器需具备足够出口带宽,否则将影响数据迁移速率。
  • 如自建Oracle为RAC架构,仅支持作为具有公网IP的自建库接入,不支持其他接入方式(例如ECS、专线、VPN网关、智能接入网关等)。
  • 迁移对象要求:
    • 待迁移的表需具备主键或唯一约束,且字段具有唯一性,否则可能会导致目标数据库中出现重复数据。
    • 如果您的自建Oracle版本为12c及以上,待迁移表的名称长度需不超过30个字节。
    • 如迁移对象为表级别,且需进行编辑(如表列名映射),则单次迁移任务仅支持迁移至多1000张表。当超出数量限制,任务提交后会显示请求报错,此时建议您拆分待迁移的表,分批配置多个任务,或者配置整库的迁移任务。
  • 如需进行增量迁移,Redo Log、Archive Log:
    • 需开启。
    • 如为增量迁移任务,DTS要求源数据库的Redo Log、Archive Log保存24小时以上,如为全量迁移和增量迁移任务,DTS要求源数据库的Redo Log、Archive Log至少保留7天以上(您可在全量迁移完成后将Redo Log、Archive Log保存时间设置为24小时以上),否则DTS可能因无法获取Redo Log、Archive Log而导致任务失败,极端情况下甚至可能会导致数据不一致或丢失。由于您所设置的Redo Log、Archive Log保存时间低于DTS要求的时间进而导致的问题,不在DTS的SLA保障范围内。

  • 源库的操作限制:
    • 在库表结构迁移和全量迁移阶段,请勿执行库或表结构变更的DDL操作,否则数据迁移任务失败。
    • 如仅执行全量数据迁移,请勿向源实例中写入新的数据,否则会导致源和目标数据不一致。为实时保持数据一致性,建议选择结构迁移、全量数据迁移和增量数据迁移。
其他限制
  • 执行数据迁移前需评估源库和目标库的性能,同时建议业务低峰期执行数据迁移。否则全量数据迁移时DTS占用源和目标库一定读写资源,可能会导致数据库的负载上升。
  • 由于全量数据迁移会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量迁移完成后目标数据库的表存储空间会比源实例的表存储空间大。
  • DTS会尝试恢复七天之内迁移失败任务。因此业务切换至目标实例前,请务必结束或释放该任务,或者将DTS访问目标实例账号的写权限用revoke命令回收掉。避免该任务被自动恢复后,源端数据覆盖目标实例的数据。

自建Oracle迁移至阿里云消息队列Kafka版或自建Kafka

类型 说明
源库限制
  • 带宽要求:源库所属的服务器需具备足够出口带宽,否则将影响数据迁移速率。
  • 如自建Oracle为RAC架构,仅支持作为具有公网IP的自建库接入,不支持其他接入方式(例如ECS、专线、VPN网关、智能接入网关等)。
  • 迁移对象要求:
    • 待迁移的表需具备主键或唯一约束,且字段具有唯一性,否则可能会导致目标数据库中出现重复数据。
    • 如果您的自建Oracle版本为12c及以上,待迁移表的名称长度需不超过30个字节。
    • 如迁移对象为表级别,且需进行编辑(如表列名映射),则单次迁移任务仅支持迁移至多1000张表。当超出数量限制,任务提交后会显示请求报错,此时建议您拆分待迁移的表,分批配置多个任务,或者配置整库的迁移任务。
  • 如需进行增量迁移,Redo Log、Archive Log:
    • 需开启。
    • 如为增量迁移任务,DTS要求源数据库的Redo Log、Archive Log保存24小时以上,如为全量迁移和增量迁移任务,DTS要求源数据库的Redo Log、Archive Log至少保留7天以上(您可在全量迁移完成后将Redo Log、Archive Log保存时间设置为24小时以上),否则DTS可能因无法获取Redo Log、Archive Log而导致任务失败,极端情况下甚至可能会导致数据不一致或丢失。由于您所设置的Redo Log、Archive Log保存时间低于DTS要求的时间进而导致的问题,不在DTS的SLA保障范围内。

  • 源库的操作限制:
    • 在库表结构迁移和全量迁移阶段,请勿执行库或表结构变更的DDL操作,否则数据迁移任务失败。
    • 如仅执行全量数据迁移,请勿向源实例中写入新的数据,否则会导致源和目标数据不一致。为实时保持数据一致性,建议选择结构迁移、全量数据迁移和增量数据迁移。
其他限制
  • 执行数据迁移前需评估源库和目标库的性能,同时建议业务低峰期执行数据迁移。否则全量数据迁移时DTS占用源和目标库一定读写资源,可能会导致数据库的负载上升。
  • 由于全量数据迁移会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量迁移完成后目标数据库的表存储空间会比源实例的表存储空间大。
  • DTS会尝试恢复七天之内迁移失败任务。因此业务切换至目标实例前,请务必结束或释放该任务,或者将DTS访问目标实例账号的写权限用revoke命令回收掉。避免该任务被自动恢复后,源端数据覆盖目标实例的数据。

自建Oracle间迁移

如果迁移的目标数据库类型为Oracle,具体注意事项及限制如下:
类型 说明
源库限制
  • 带宽要求:源库所属的服务器需具备足够出口带宽,否则将影响数据迁移速率。
  • 如自建Oracle为RAC架构,仅支持作为具有公网IP的自建库接入,不支持其他接入方式(例如ECS、专线、VPN网关、智能接入网关等)。
  • 迁移对象要求:
    • 待迁移的表需具备主键或唯一约束,且字段具有唯一性,否则可能会导致目标数据库中出现重复数据。
    • 如果您的自建Oracle版本为12c及以上,待迁移表的名称长度需不超过30个字节。
    • 如迁移对象为表级别,且需进行编辑(如表列名映射),则单次迁移任务仅支持迁移至多1000张表。当超出数量限制,任务提交后会显示请求报错,此时建议您拆分待迁移的表,分批配置多个任务,或者配置整库的迁移任务。
  • 如需进行增量迁移,Redo Log、Archive Log:
    • 需开启。
    • 如为增量迁移任务,DTS要求源数据库的Redo Log、Archive Log保存24小时以上,如为全量迁移和增量迁移任务,DTS要求源数据库的Redo Log、Archive Log至少保留7天以上(您可在全量迁移完成后将Redo Log、Archive Log保存时间设置为24小时以上),否则DTS可能因无法获取Redo Log、Archive Log而导致任务失败,极端情况下甚至可能会导致数据不一致或丢失。由于您所设置的Redo Log、Archive Log保存时间低于DTS要求的时间进而导致的问题,不在DTS的SLA保障范围内。

  • 源库的操作限制:
    • 在库表结构迁移和全量迁移阶段,请勿执行库或表结构变更的DDL操作,否则数据迁移任务失败。
    • 如仅执行全量数据迁移,请勿向源实例中写入新的数据,否则会导致源和目标数据不一致。为实时保持数据一致性,建议选择结构迁移、全量数据迁移和增量数据迁移。
其他限制
  • 执行数据迁移前需评估源库和目标库的性能,同时建议业务低峰期执行数据迁移。否则全量数据迁移时DTS占用源和目标库一定读写资源,可能会导致数据库的负载上升。
  • 由于全量数据迁移会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量迁移完成后目标数据库的表存储空间会比源实例的表存储空间大。
  • DTS会尝试恢复七天之内迁移失败任务。因此业务切换至目标实例前,请务必结束或释放该任务,或者将DTS访问目标实例账号的写权限用revoke命令回收掉。避免该任务被自动恢复后,源端数据覆盖目标实例的数据。