乐趣区

关于数据库:5分钟搞定-Oracle-到-MySQL-实时数据同步CloudCanal实战

简述

CloudCanal 2.1.0.x 版本开始反对 Oracle 作为源端的数据迁徙同步能力,目前邀请测试中。

本文通过 Oracle 到 MySQL 的数据迁徙同步案例简要介绍这个源端的能力。链路特点:

构造迁徙、全量迁徙、增量同步(数据)、数据校验俱全流程全自动化

此文章简要介绍如何疾速构建一条长期稳固运行的 Oracle->MySQL 数据链路。

技术要点

将数据从 Oracle 中同步进去有两种形式能够抉择

  • 物化视图日志
  • 应用 Redo 日志

权限问题

请确保增加的数据源账号能够拜访如下 13 张表和 1 个函数,或者应用一个具备 DBA 权限的 Oracle 账号。

  • 表 SYS.DBA_USERS
  • 表 SYS.DBA_TABLES
  • 表 SYS.DBA_TAB_COLS
  • 表 SYS.DBA_TAB_COMMENTS
  • 表 SYS.DBA_COL_COMMENTS
  • 表 SYS.PRODUCT_COMPONENT_VERSION
  • 表 SYS.DBA_CONSTRAINTS
  • 表 SYS.DBA_CONS_COLUMNS
  • 表 SYS.DBA_INDEXES
  • 表 SYS.DBA_IND_COLUMNS
  • 表 v$version
  • 表 v$database
  • 表 v$tablespace

对于物化视图计划来讲须要有额定的下列权限

  • 语句 CREATE MATERIALIZED VIEW LOG ON xxx
  • 语句 CREATE INDEX xxxx

对于 Redo 计划来将须要有 LOGMNR 相干的权限

  • 表 SYS.ALL_LOG_GROUPS
  • 表 v$logfile
  • 表 v$log
  • 表 v$archived_log
  • 表 v$logmnr_logs
  • 存储过程 SYS.DBMS_LOGMNR_D.BUILD
  • 存储过程 SYS.DBMS_LOGMNR.ADD_LOGFILE
  • 存储过程 SYS.DBMS_LOGMNR.START_LOGMNR
  • 存储过程 SYS.DBMS_LOGMNR.END_LOGMNR
  • 语句 ALTER TABLE xxxx DROP SUPPLEMENTAL LOG xxx
  • 语句 ALTER TABLE xxxx ADD SUPPLEMENTAL LOG xxx
  • 语句 ALTER SYSTEM ARCHIVE LOG CURRENT

在配置同步工作之前须要确保下面的 Oracle 权限,另外作为源端 Oracle 全量阶段还须要读取对应表的权限。

举个 “ 栗子 ”

筹备 CloudCanal

  • SaaS 版参考 自建机器客户端装置
  • 社区版参考 Docker 装置

增加数据源

  • 登录 CloudCanal 平台
  • 数据源治理 -> 增加数据源
  • 抉择 自建数据源 ,并填写相干数据库信息,其中 网络地址 请按提醒带上端口号
  • 如下已增加完 Oracle 和 MySQL

创立同步工作

  • 工作治理 -> 新建工作
  • 源端抉择刚增加的 Oracle 数据源,指标抉择 MySQL, 别离点击 测试连贯 按钮以测试数据库连通性和获取 schema 级别元信息
  • 点击 下一步

  • 抉择 数据同步 ,并且勾选 全量数据初始化
  • 规格能够依据工作重要度以及部署机器的内存容量正当抉择,个别 2GB 内存规格即可
  • 点击 下一步

  • 勾选须要同步的表,如果指标表为橙色,示意不存在同名表,工作创立实现后主动进行 构造迁徙。也能够下拉框抉择表进行映射
  • 勾选须要同步的 INSERT/UPDATE/DELETE 操作,默认全选
  • 点击 下一步

  • 通过勾选做 列映射 列裁剪
  • 点击 下一步

  • 对工作内容进行创立,如果工作不须要立即运行 , 可置灰 主动启动工作 按钮
  • 点击 确认创立

工作同步

  • 工作分为 3 个阶段:构造迁徙 数据初始化 数据同步,每一个阶段实现时,状态主动流转,直到同步稳态

    • 构造迁徙:当对端数据库不存在对应的库表时 CloudCanal 会主动将 Oracle 的表在对端创立进去
    • 数据初始化:将源端所选库表数据以全量迁徙形式搬迁到对端

      • 数据同步:准实时的同步增量数据,即源端数据库上产生的增、删、改操作同步到对端数据库上

FAQ

目前 Oracle 源端还反对哪些数据源?

除了 Oracle 到 MySQL 之外,截止社区版 2.0.1.1 版本,还反对上面这些链路

  • Oracle -> PostgreSQL
  • Oracle -> Greenplum
  • Oracle -> TiDB
  • Oracle -> Oracle
  • Oracle -> Kudu。

预检失败会有哪些影响?

一些小伙伴可能在创立工作的时候遇到相似如下报错信息,可能会有一些纳闷。

在创立工作的最初阶段咱们会进行一些检测,Oracle 作为源端会存在如下一些检测我的项目。

物化视图模式下

  • 如果表曾经创立了物化视图日志表那么预检失败。

Redo 模式下

  • 开启日志归档模式 alter database archivelog 开启过程须要数据库离线。
  • 须要开启最小补全日志 alter database add supplemental log data

总结

本文简略介绍了如何应用 CloudCanal 疾速构建 Oracle-> MySQL 数据迁徙同步链路,更多的源端和指标端陆续凋谢。各位小伙伴,如果感觉还不错,请点赞、评论加转发吧。

更多精彩

  • 5 分钟搞定 MySQL 到 ClickHouse 宽表构建和同步 -CloudCanal 实战
  • 5 分钟搞定 MySQL 到 ElasticSearch 宽表构建和同步 -CloudCanal 实战
  • 5 分钟搞定 MySQL 到 ClickHouse 实时数据同步进阶篇 -CloudCanal 实战
  • 5 分钟搞定 MySQL 到 ElasticSearch 迁徙同步 -CloudCanal 实战
  • 5 分钟搞定 MySQL 到 MySQL 异构在线数据迁徙同步 -CloudCanal 实战
  • 5 分钟搞定 MySQL 到 TiDB 的数据同步 – CloudCanal 实战

加入内测

Oracle 源端目前处于 beta 阶段,你能够通过增加咱们的微信小助手 (suhuayue001),进入内测群提前进行测试验证,取得提交需要优先解决的机会,包含反对以 Oracle 为源端的、尚未开明的链路或性能。
退出 CloudCanal 粉丝群把握一手音讯和获取更多福利,请增加咱们小助手微信:suhuayue001
CloudCanal- 收费好用的企业级数据同步工具,欢送品鉴。
理解更多产品能够查看官方网站:http://www.clougence.com
CloudCanal 社区:https://www.askcug.com/

退出移动版