数据迁移和同步工具之CloudCanal介绍
Tags: CloudCanal数据迁移
简介
https://www.clougence.com/cc-doc/intro/product_intro/
CloudCanal 是一款数据迁移同步工具,帮助企业快速构建高质量数据流通通道,产品包含 SaaS 模式和私有输出专享模式。开发团队核心成员来自大厂,具备数据库内核、大规模分布式系统、云产品构建背景,懂数据库,懂分布式,懂云产品商业和服务模式。
数据迁移
数据迁移 将指定数据源数据全量搬迁到目标数据源,支持多种数据源,具备断点续传、顺序分页扫描、并行扫描、批量写入、并行写入、数据条件过滤等特点,对源端数据源影响小且性能好,同时满足数据轻度处理需求。
数据迁移 可选搭配 结构迁移、迁移后指定时长数据同步、数据校验,满足可能的业务平滑切换需求。
数据同步
数据同步 通过消费源端数据源增量操作日志,准实时在对端数据源重放,以达到数据同步目的,支持多种数据源,具备断点续传、DDL 同步、边同步边校验、对端事务保持、高性能对端写入、数据条件过滤等特点。
数据同步 可选搭配 结构迁移、数据初始化(全量迁移)、单次或定时数据全量校验,既便利,又能满足业务长周期数据同步对于数据质量的要求。
结构迁移
结构迁移 帮助用户快速镜像指定数据源结构,具备类型转换、数据库方言转换、命名映射等特点,可独立使用,也可作为 数据迁移 或 数据同步 准备步骤,灵活满足新数据构建需求。
数据校验
数据校验 让数据质量可衡量,可单独使用,也可配合 数据迁移 或 数据同步 使用,具备全量校验、增量校验、采样率、定时执行、校验数据条件过滤等特性,满足用户灵活的数据质量验证需求。
安装
安装docker和docker-compose
1 2 3 4 5 6 | curl -fsSL get.docker.com -o get-docker.sh sh get-docker.sh curl -L https://get.daocloud.io/docker/compose/releases/download/1.28.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose |
安装cloudcanal
https://www.clougence.com/cc-doc/quick/quick_start
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | # 安装7z命令(centos系) sudo yum install p7zip p7zip-plugins # 安装7z命令(ubuntu系) sudo apt-get install p7zip-full p7zip-rar 7z x cloudcanal.7z sh startup.sh - 执行启动命令: sh startup.sh - 当终端出现 cloudcanal start 时,即启动成功 启动过程将耗时 1 分钟左右,访问控制台 http://{您部署机器的ip}:8111 正确登录并开始操作 用户名:test@clougence.com 密码:clougence2021 |
解压目录如下,其中包括
- 镜像:包含四个 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”
}
- 关闭正在运行的CloudCanal容器,然后修改docker0网段
参考
https://www.clougence.com/cc-doc/intro/product_intro/