数据迁移和同步工具之CloudCanal介绍

0    807    1

Tags:

👉 本文共约3026个字,系统预计阅读时间或需12分钟。

简介

https://www.clougence.com/

https://www.clougence.com/cc-doc/intro/product_intro/

CloudCanal 是一款数据迁移同步工具,帮助企业快速构建高质量数据流通通道,产品包含 SaaS 模式和私有输出专享模式。开发团队核心成员来自大厂,具备数据库内核、大规模分布式系统、云产品构建背景,懂数据库,懂分布式,懂云产品商业和服务模式。

数据迁移

数据迁移 将指定数据源数据全量搬迁到目标数据源,支持多种数据源,具备断点续传、顺序分页扫描、并行扫描、批量写入、并行写入、数据条件过滤等特点,对源端数据源影响小且性能好,同时满足数据轻度处理需求。

数据迁移 可选搭配 结构迁移迁移后指定时长数据同步数据校验,满足可能的业务平滑切换需求。

数据同步

数据同步 通过消费源端数据源增量操作日志,准实时在对端数据源重放,以达到数据同步目的,支持多种数据源,具备断点续传、DDL 同步、边同步边校验、对端事务保持、高性能对端写入、数据条件过滤等特点。

数据同步 可选搭配 结构迁移数据初始化(全量迁移)单次或定时数据全量校验,既便利,又能满足业务长周期数据同步对于数据质量的要求。

结构迁移

结构迁移 帮助用户快速镜像指定数据源结构,具备类型转换、数据库方言转换、命名映射等特点,可独立使用,也可作为 数据迁移数据同步 准备步骤,灵活满足新数据构建需求。

数据校验

数据校验 让数据质量可衡量,可单独使用,也可配合 数据迁移数据同步 使用,具备全量校验、增量校验、采样率、定时执行、校验数据条件过滤等特性,满足用户灵活的数据质量验证需求。

安装

安装docker和docker-compose

安装cloudcanal

https://www.clougence.com/cc-doc/quick/quick_start

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!

解压目录如下,其中包括

  • 镜像:包含四个 tar 压缩文件
  • 脚本:启动、更新和停止,以及 scripts 运维脚本目录
  • 日志与配置文件:日志为 docker-compose 启动日志,配置文件为 docker-compose 配置文件

Oracle到MySQL的迁移

参考:https://zhuanlan.zhihu.com/p/454419138 5分钟搞定 Oracle 到 MySQL 实时数据同步-CloudCanal实战

添加数据源

  • 登录 CloudCanal 平台
  • 数据源管理 -> 添加数据源
  • 选择 自建数据源 ,并填写相关数据库信息,其中 网络地址 请按提示带上端口号

创建同步任务

  • 任务管理->新建任务
  • 源端选择刚添加的 Oracle 数据源,目标选择 MySQL, 分别点击 测试连接 按钮以测试数据库连通性和获取 schema 级别元信息
  • 点击下一步
  • 选择 数据同步,并且勾选全量数据初始化
  • 规格可以根据任务重要度以及部署机器的内存容量合理选择,一般 2GB 内存规格即可
  • 点击下一步
  • 勾选需要同步的表,如果目标表为橙色,表示不存在同名表,任务创建完成后自动进行结构迁移。也可以下拉框选择表进行映射
  • 勾选需要同步的 INSERT/UPDATE/DELETE 操作,默认全选
  • 点击下一步
  • 通过勾选做列映射列裁剪
  • 点击下一步
  • 对任务内容进行创建 ,如果任务不需要立刻运行 , 可置灰自动启动任务 按钮
  • 点击确认创建
  • 任务同步
    • 任务分为 3 个阶段:结构迁移数据初始化数据同步,每一个阶段完成时,状态自动流转,直到同步稳态
    • 结构迁移:当对端数据库不存在对应的库表时 CloudCanal 会自动将 Oracle 的表在对端创建出来
    • 数据初始化:将源端所选库表数据以全量迁移方式搬迁到对端
    • 数据同步:准实时的同步增量数据,即源端数据库上发生的增、删、改操作同步到对端数据库上

网络

数据源地址是 172.17 开头的网络的问题

  • 原因描述

    • 由于docker自身的容器默认网络docker0,它的默认网段是172.17.0.0/16,如果您的数据源刚好与它重合了,会导致连接不上数据源的情况,虽然这种情况很少见。由于我们CloudCanal容器版使用用docker创建的cloudcanal-network它的网段是172.33.238.0/24,docker为了隔离docker的各个bridge网络,彼此是ping不通的,即cloudcanal-network网络与docker0网络无法通信。请求连接数据源的地址如果刚好是172.17开头的,请求的数据包(由处于cloudcanal-network网络的sidecar发出),会被docker误以为是访问docker0网络的,也会被docker拦截下来。
  • 解决方案

    • 关闭正在运行的CloudCanal容器,然后修改docker0网段 vim /etc/docker/daemon.json
      {
      “bip”: “172.22.0.1/16”
      }

参考

https://www.clougence.com/cc-doc/intro/product_intro/

https://www.askcug.com/topic/75/cloudcanal%E7%A4%BE%E5%8C%BA%E7%89%88docker%E7%89%88%E5%AE%89%E8%A3%85-linux-macos

更多精彩

标签:

头像

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部
返回顶部