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

源库为Oracle的迁移方案概览

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

自建Oracle迁移至PolarDB-O

具体注意事项及限制如下:
类型 说明
源库限制
  • 带宽要求:源库所属的服务器需具备足够出口带宽,否则将影响数据迁移速率。
  • 迁移对象要求:
    • 待迁移的表需具备主键或唯一约束,且字段具有唯一性,否则可能会导致目标数据库中出现重复数据。
    • 如果您的自建Oracle版本为12c及以上,待迁移表的名称长度需不超过30个字节。
  • 如需进行增量迁移,数据日志:
    • 需开启。
    • 建议在全量迁移期间,数据日志至少保留7天以上。或者等到全量迁移完成后,再清理DTS任务运行后源库产生的数据日志。
      说明 为保障数据安全,DTS本地只会循环存储源库近24小时或者50 GB的数据日志,一旦超出该限制,DTS本地将自动清除所缓存的日志。
      警告 过早清理源库的数据日志,可能会导致迁移任务失败。例如源库的全量迁移数据较多,目标库写入异常等原因,导致全量迁移耗时超过24小时。在该情况下,过早清理源库的数据日志,DTS将无法获取到24小时前的数据日志,可能会导致迁移任务失败。
  • 源库的操作限制:
    • 在库表结构迁移和全量迁移阶段,请勿执行库或表结构变更的DDL操作,否则数据迁移任务失败。
    • 如仅执行全量数据迁移,请勿向源实例中写入新的数据,否则会导致源和目标数据不一致。为实时保持数据一致性,建议选择结构迁移、全量数据迁移和增量数据迁移。
其他限制
  • 执行数据迁移前需评估源库和目标库的性能,同时建议业务低峰期执行数据迁移。否则全量数据迁移时DTS占用源和目标库一定读写资源,可能会导致数据库的负载上升。
  • 由于全量数据迁移会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量迁移完成后目标数据库的表存储空间会比源实例的表存储空间大。
  • DTS会尝试恢复七天之内迁移失败任务。因此业务切换至目标实例前,请务必结束或释放该任务,或者将DTS访问目标实例账号的写权限用revoke命令回收掉。避免该任务被自动恢复后,源端数据覆盖目标实例的数据。

自建Oracle迁移至MySQL

如果迁移的目标数据库类型为MySQL,如RDS MySQL、自建MySQL,具体注意事项及限制如下:
类型 说明
源库限制
  • 带宽要求:源库所属的服务器需具备足够出口带宽,否则将影响数据迁移速率。
  • 迁移对象要求:
    • 待迁移的表需具备主键或唯一约束,且字段具有唯一性,否则可能会导致目标数据库中出现重复数据。
    • 如果您的自建Oracle版本为12c及以上,待迁移表的名称长度需不超过30个字节。
  • 如需进行增量迁移,数据日志:
    • 需开启。
    • 建议在全量迁移期间,数据日志至少保留7天以上。或者等到全量迁移完成后,再清理DTS任务运行后源库产生的数据日志。
      说明 为保障数据安全,DTS本地只会循环存储源库近24小时或者50 GB的数据日志,一旦超出该限制,DTS本地将自动清除所缓存的日志。
      警告 过早清理源库的数据日志,可能会导致迁移任务失败。例如源库的全量迁移数据较多,目标库写入异常等原因,导致全量迁移耗时超过24小时。在该情况下,过早清理源库的数据日志,DTS将无法获取到24小时前的数据日志,可能会导致迁移任务失败。
  • 源库的操作限制:
    • 在库表结构迁移和全量迁移阶段,请勿执行库或表结构变更的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版本为12c及以上,待迁移表的名称长度需不超过30个字节。
  • 如需进行增量迁移,数据日志:
    • 需开启。
    • 建议在全量迁移期间,数据日志至少保留7天以上。或者等到全量迁移完成后,再清理DTS任务运行后源库产生的数据日志。
      说明 为保障数据安全,DTS本地只会循环存储源库近24小时或者50 GB的数据日志,一旦超出该限制,DTS本地将自动清除所缓存的日志。
      警告 过早清理源库的数据日志,可能会导致迁移任务失败。例如源库的全量迁移数据较多,目标库写入异常等原因,导致全量迁移耗时超过24小时。在该情况下,过早清理源库的数据日志,DTS将无法获取到24小时前的数据日志,可能会导致迁移任务失败。
  • 源库的操作限制:
    • 在库表结构迁移和全量迁移阶段,请勿执行库或表结构变更的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版本为12c及以上,待迁移表的名称长度需不超过30个字节。
  • 如需进行增量迁移,数据日志:
    • 需开启。
    • 建议在全量迁移期间,数据日志至少保留7天以上。或者等到全量迁移完成后,再清理DTS任务运行后源库产生的数据日志。
      说明 为保障数据安全,DTS本地只会循环存储源库近24小时或者50 GB的数据日志,一旦超出该限制,DTS本地将自动清除所缓存的日志。
      警告 过早清理源库的数据日志,可能会导致迁移任务失败。例如源库的全量迁移数据较多,目标库写入异常等原因,导致全量迁移耗时超过24小时。在该情况下,过早清理源库的数据日志,DTS将无法获取到24小时前的数据日志,可能会导致迁移任务失败。
  • 源库的操作限制:
    • 在库表结构迁移和全量迁移阶段,请勿执行库或表结构变更的DDL操作,否则数据迁移任务失败。
    • 如仅执行全量数据迁移,请勿向源实例中写入新的数据,否则会导致源和目标数据不一致。为实时保持数据一致性,建议选择结构迁移、全量数据迁移和增量数据迁移。
其他限制
  • 执行数据迁移前需评估源库和目标库的性能,同时建议业务低峰期执行数据迁移。否则全量数据迁移时DTS占用源和目标库一定读写资源,可能会导致数据库的负载上升。
  • 由于全量数据迁移会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量迁移完成后目标数据库的表存储空间会比源实例的表存储空间大。
  • DTS会尝试恢复七天之内迁移失败任务。因此业务切换至目标实例前,请务必结束或释放该任务,或者将DTS访问目标实例账号的写权限用revoke命令回收掉。避免该任务被自动恢复后,源端数据覆盖目标实例的数据。

自建Oracle迁移至Kafka

如果迁移的目标数据库类型为Kafka,包括消息队列Kafka版,自建Kafka,具体注意事项及限制如下:
类型 说明
源库限制
  • 带宽要求:源库所属的服务器需具备足够出口带宽,否则将影响数据迁移速率。
  • 迁移对象要求:
    • 待迁移的表需具备主键或唯一约束,且字段具有唯一性,否则可能会导致目标数据库中出现重复数据。
    • 如果您的自建Oracle版本为12c及以上,待迁移表的名称长度需不超过30个字节。
  • 如需进行增量迁移,数据日志:
    • 需开启。
    • 建议在全量迁移期间,数据日志至少保留7天以上。或者等到全量迁移完成后,再清理DTS任务运行后源库产生的数据日志。
      说明 为保障数据安全,DTS本地只会循环存储源库近24小时或者50 GB的数据日志,一旦超出该限制,DTS本地将自动清除所缓存的日志。
      警告 过早清理源库的数据日志,可能会导致迁移任务失败。例如源库的全量迁移数据较多,目标库写入异常等原因,导致全量迁移耗时超过24小时。在该情况下,过早清理源库的数据日志,DTS将无法获取到24小时前的数据日志,可能会导致迁移任务失败。
  • 源库的操作限制:
    • 在库表结构迁移和全量迁移阶段,请勿执行库或表结构变更的DDL操作,否则数据迁移任务失败。
    • 如仅执行全量数据迁移,请勿向源实例中写入新的数据,否则会导致源和目标数据不一致。为实时保持数据一致性,建议选择结构迁移、全量数据迁移和增量数据迁移。
其他限制
  • 执行数据迁移前需评估源库和目标库的性能,同时建议业务低峰期执行数据迁移。否则全量数据迁移时DTS占用源和目标库一定读写资源,可能会导致数据库的负载上升。
  • 由于全量数据迁移会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量迁移完成后目标数据库的表存储空间会比源实例的表存储空间大。
  • DTS会尝试恢复七天之内迁移失败任务。因此业务切换至目标实例前,请务必结束或释放该任务,或者将DTS访问目标实例账号的写权限用revoke命令回收掉。避免该任务被自动恢复后,源端数据覆盖目标实例的数据。

自建Oracle间迁移

如果迁移的目标数据库类型为Oracle,具体注意事项及限制如下:
类型 说明
源库限制
  • 带宽要求:源库所属的服务器需具备足够出口带宽,否则将影响数据迁移速率。
  • 迁移对象要求:
    • 待迁移的表需具备主键或唯一约束,且字段具有唯一性,否则可能会导致目标数据库中出现重复数据。
    • 如果您的自建Oracle版本为12c及以上,待迁移表的名称长度需不超过30个字节。
  • 如需进行增量迁移,数据日志:
    • 需开启。
    • 建议在全量迁移期间,数据日志至少保留7天以上。或者等到全量迁移完成后,再清理DTS任务运行后源库产生的数据日志。
      说明 为保障数据安全,DTS本地只会循环存储源库近24小时或者50 GB的数据日志,一旦超出该限制,DTS本地将自动清除所缓存的日志。
      警告 过早清理源库的数据日志,可能会导致迁移任务失败。例如源库的全量迁移数据较多,目标库写入异常等原因,导致全量迁移耗时超过24小时。在该情况下,过早清理源库的数据日志,DTS将无法获取到24小时前的数据日志,可能会导致迁移任务失败。
  • 源库的操作限制:
    • 在库表结构迁移和全量迁移阶段,请勿执行库或表结构变更的DDL操作,否则数据迁移任务失败。
    • 如仅执行全量数据迁移,请勿向源实例中写入新的数据,否则会导致源和目标数据不一致。为实时保持数据一致性,建议选择结构迁移、全量数据迁移和增量数据迁移。
其他限制
  • 执行数据迁移前需评估源库和目标库的性能,同时建议业务低峰期执行数据迁移。否则全量数据迁移时DTS占用源和目标库一定读写资源,可能会导致数据库的负载上升。
  • 由于全量数据迁移会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量迁移完成后目标数据库的表存储空间会比源实例的表存储空间大。
  • DTS会尝试恢复七天之内迁移失败任务。因此业务切换至目标实例前,请务必结束或释放该任务,或者将DTS访问目标实例账号的写权限用revoke命令回收掉。避免该任务被自动恢复后,源端数据覆盖目标实例的数据。