乐趣区

关于数据库:CloudCanal实战Oracle数据迁移同步到PostgreSQL

简述

本篇文章次要介绍如何应用 CloudCanal 构建一条 OraclePostgreSQL 的数据同步链路

技术要点

放大的数据库权限要求

CloudCanalOracle 数据库的高权限要求,次要来自两个面向 DBA 的操作,主动构建字典 主动切换归档日志 ,这两个操作次要是让用户应用更加自动化和便当,然而问题也比拟显著,对数据库运维规范严苛的客户来说,这些权限对于咱们的客户是没有的,所以新版本 CloudCanal,通过参数配置,反对了 敞开主动字典构建能力(默认关上)敞开主动切换归档日志能力(默认敞开)

多版本 schema 以反对位点回拉

对于关系型数据库同步工具而言,增量数据自身往往和元数据拆散 ,也就是生产到的增量数据和即时从数据库外面获取的元数据 不肯定匹配(两个工夫点之间有 DDL),所以维持一个多版本的元数据以应答增量数据解析是必要的,CloudCanal 以每天的 schema dump 为基准,辅以到以后位点的 DDL 语句列表,可构建出任何工夫点的元数据 (实际上是更加准确的 scn 位点),单个 DDL 前后的数据变更事件, 可能准确匹配到绝对应的元数据 进行解析,CloudCanal 才有可能在此版本产品上提供了 回拉位点反复生产一段时间增量数据 的能力

反对的版本

源端 Oracle 反对的版本:10.X11.X12.X18.X19.X

对端 PostgreSQL 反对的版本:8.49.09.19.29.39.49.59.610.X11.X12.X13.X14.X15.X16.X17.X

反对的 DDL& 数据类型映射

  • Oracle -> PostgreSQL 链路反对的 DDL 临时只有 ALTER TABLE,后续咱们将一直进行欠缺
  • CloudCanal 构造迁徙和数据迁徙同步时会主动进行数据类型映射

类型映射见下表:

Oracle 字段类型 PostgreSQL 字段类型
CHAR、NCHAR、VARCHAR2、NVARCHAR、NVARCHAR2、ROWID、HTTPURITYPE CHARACTER_VARYING
LONG、CLOB、NCLOB TEXT
NUMBER_BIGINT BIGINT
NUMBER_DECIMAL、BINARY_FLOAT、BINARY_DOUBLE NUMERIC
FLOAT REAL
DATE、TIMESTAMP TIMESTAMP_WITHOUT_TIME_ZONE、TIMESTAMP_WITHOUT_TIME_ZONE
TIMESTAMP_WITH_TIME_ZONE、TIMESTAMP_WITH_LOCAL_TIME_ZONE TIMESTAMP_WITH_TIME_ZONE
XMLTYPE XML

Tips:针对于 Oracle -> PostgreSQL 链路,源端 Oracle 不在上表的字段类型临时不反对

操作示例

筹备工作

  • 装置最新版的 CloudCanal
  • 筹备好源端数据源和对端数据源以及源端数据
  • CloudCanalOracle 作为源端进行数据迁徙时,须要做一些额定的筹备,具体参考 ORACLE LogMiner 同步筹备

增加数据源

  • 登录 CloudCanal 平台
  • 数据源治理 -> 新增数据源
  • 抉择自建数据库 -> 抉择对应数据库 -> 输出相干信息 -> 测试连贯 -> 新增数据源

Tips:Oracle 相较于其余数据源有一些额定的参数能够调整

  • logminerUser:ORACLE 源端增量工作应用 redo 解析 (logminer) 形式时应用的账号,须要 CDB 类型用户
  • logminerPasswd:ORACLE 源端增量工作应用 redo 解析 (logminer) 形式时应用的账号密码
  • logminerConnectType:ORACLE 源端增量工作应用 redo 解析 (logminer) 形式时应用的连贯形式,目前反对 ORACLE_SID 或 ORACLE_SERVICE 模式
  • logminerSidOrService:ORACLE 源端增量工作应用 redo 解析 (logminer) 形式时应用的连贯标识符,和 logminerConnectType 参数配合应用,ORACLE_SID 连贯形式,则填写 sid,ORACLE_SERVICE 连贯形式,则填写 service name
  • 增加 OraclePostgreSQL 之后能够在数据源列表中看到新增的数据源

创立同步工作

  • 工作治理 -> 创立工作
  • 源端抉择 Oracle 数据源,对端抉择 PostgreSQL数据源
  • 别离点击测试连贯,抉择源端和对端须要订阅的数据库,抉择下一步
  • 抉择 全量迁徙 -> 勾选 增量同步 -> 依据本身机器配置抉择 工作规格
  • 抉择 下一步
  • 抉择源端须要同步的表,如果指标表显示橙色示意对端不存在该表,工作创立之后,会主动生成该表
  • 点击 下一步
  • 能够在左侧抉择增加 数据过滤条件
  • 点击 下一步
  • 点击 创立工作

工作执行

工作创立并且启动后,会主动进行如下的三个阶段:

  • 构造迁徙:工作创立之后,如果对端没有表构造,那么 CloudCanal 会去主动在对端创立表构造
  • 全量迁徙:将源端存量数据整体迁徙到对端
  • 增量同步:全量迁徙期间以及全量实现当前的源端增量数据变更会实时同步到对端

总结

本文简略介绍了如何应用 CloudCanal 进行 Oracle -> PostgreSQL 数据迁徙同步。各位读者敌人,如果你感觉还不错,请点赞、评论加转发吧

退出移动版