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

添加数据源

  • 登录 CloudCanal 平台

  • 数据源管理 -> 添加数据源

  • 选择 自建数据源 ,并填写相关数据库信息,其中 网络地址 请按提示带上端口号

    9d87303b-45dd-4bd1-bd73-f053b59046cf-image.png

  • 如下已添加完 Oracle 和 MySQL


    a718b8f7-7961-4a1d-bb41-445ba81c0037-image.png

创建同步任务

  • 任务管理->新建任务
  • 源端选择刚添加的 Oracle 数据源,目标选择 MySQL, 分别点击 测试连接 按钮以测试数据库连通性和获取 schema 级别元信息
  • 点击下一步
1a3d90f2-4efb-49d8-b579-8919e9debca6-image.png
  • 选择 数据同步,并且勾选全量数据初始化
  • 规格可以根据任务重要度以及部署机器的内存容量合理选择,一般 2GB 内存规格即可
  • 点击下一步
a3722630-7625-4485-ad56-3340d3fd904d-image.png
  • 勾选需要同步的表,如果目标表为橙色,表示不存在同名表,任务创建完成后自动进行结构迁移。也可以下拉框选择表进行映射

  • 勾选需要同步的 INSERT/UPDATE/DELETE 操作,默认全选

  • 点击下一步

    c70a7c0f-cbd9-4f6a-849c-21c607cf769e-image.png
  • 通过勾选做列映射列裁剪

  • 点击下一步

    d20d2906-6ba5-4fea-bd43-f2033aa3509e-image.png
  • 对任务内容进行创建 ,如果任务不需要立刻运行 , 可置灰自动启动任务 按钮

  • 点击确认创建

    77f49016-0cec-4d33-93d1-a94b741d788f-image.png

任务同步

  • 任务分为 3 个阶段:结构迁移数据初始化数据同步,每一个阶段完成时,状态自动流转,直到同步稳态
    afd38301-a854-4543-b814-8782ed1c094d-image.png

    c2772d7c-2ab7-470c-8551-280f723221ad-image.png
    • 结构迁移:当对端数据库不存在对应的库表时 CloudCanal 会自动将 Oracle 的表在对端创建出来
    • 数据初始化:将源端所选库表数据以全量迁移方式搬迁到对端
    • 数据同步:准实时的同步增量数据,即源端数据库上发生的增、删、改操作同步到对端数据库上

FAQ

目前 Oracle 源端还支持哪些数据源?

除了 Oracle 到 MySQL 之外,截止社区版 2.0.1.1 版本,还支持下面这些链路

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

预检失败会有哪些影响?

一些小伙伴可能在创建任务的时候遇到类似如下报错信息,可能会有一些疑惑。


8f3f8d80-437a-4ce9-b3d6-450a0f5e0466-image.png

在创建任务的最后阶段我们会进行一些检测,Oracle 作为源端会存在如下一些检测项目。

物化视图模式下

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

Redo 模式下

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

总结

本文简单介绍了如何使用 CloudCanal 快速构建Oracle-> MySQL 数据迁移同步链路,更多的源端和目标端陆续开放。各位小伙伴,如果觉得还不错,请点赞、评论加转发吧。

更多精彩

参加内测

Oracle 源端目前处于 beta 阶段,你可以通过添加我们的微信小助手(suhuayue001),进入内测群提前进行测试验证,获得提交需求优先解决的机会,包括支持以 Oracle 为源端的、尚未开通的链路或功能。

CloudCanal-免费好用的企业级数据同步工具,欢迎品鉴。
了解更多产品可以查看官方网站http://www.clougence.com
CloudCanal社区https://www.askcug.com/

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容