自建Oracle到自建MySQL

一、支持版本

  • Oracle数据库的版本为11g、12c版本
  • 支持不同版本数据库同步
  • 支持RAC多实例和普通单实例Oracle数据库

二、注意事项

2.1数据库权限设置

(即同步数据库账号的权限要求)

  • 源数据库要求
    • 库表结构最小权限
      • CONNECT、RESOURCE权限
    • 全量最小权限
      • CONNECT、RESOURCE权限
    • 增量最小权限
      • CONNECT、RESOURCE、SELECT ANY TABLE、SELECT ANY DICTIONARY、LOGMINING、SELECT ANY TRANSACTION权限
  • 目标数据库要求
    • SELECT、CREATE、INSERT、DELETE、UPDATE、ALTER、DROP、INDEX

2.2源库要求

  • 同步对象要求:
    • 待同步的表需具备主键或唯一约束,且字段具有唯一性,否则可能会导致目标数据库中出现重复数据
    • 不支持浮点数类型列作为主键
  • 目前实现的是表级同步。如果表太多,建议您分批配置多个任务,每个任务同步一部分表。
  • 在同步全量时,不要变更库及表结构。
  • 全量同步支持分片,分片仅支持单主键表格,支持列类型为char、number、date、timestamp、interval
  • 数据库配置限制:
    • Oracle数据库已开启ARCHIVELOG(归档模式),设置合理的归档日志保持周期且归档日志能够被访问
    • Oracle数据库已开启Supplemental Logging,开启数据库级补全日志或者表级补全日志(all)。为减少资源消耗,可以不用all级别而改为primary key级别
    • 需要开启Logminer

2.3目标库要求

  • 目的库相关(库名)shema必须存在
  • 在DTS同步期间,不允许有除DTS外的数据写入目标表格,否则会导致源库表格与目标库表格数据不一致。

2.4功能约束

2.4.1同步对象约束

支持表结构、全量、增量dml(不支持ddl),不支持主键列更新。

2.4.2 其他约束

三、支持的字段类型及类型映射

数据类型(Oracle) 是否支持映射 数据类型(Mysql)
NUMBER(有精度) DECIMAL
NUMBER(无精度) DOUBLE
FLOAT(有精度) VARCHAR
FLOAT(无精度) FLOAT
BINARY_FLOAT DOUBLE
BINARY_DOUBLE DOUBLE
CHAR、NCHAR、VARCHAR2、
VARCHAR、NVARCHAR2、NVARCHAR
VARCHAR
DATE DATETIME
TIMESTAMP DATETIME
INTERVAL VARCHAR

四、支持同步的SQL语句

操作类型 SQL操作语句 备注
DML INSERT、DELETE、UPDATE

五、支持的拓扑

  • 一对一单向同步