canal实时同步oracle,canal反向同步数仓方案
canal
Canal是阿里巴巴开源的一款主要用于数据库同步业务的项目,基于数据库的日志解析,获取增量变更进行同步,由此衍生出了Canal增量订阅&消费的实时数据库同步。目前阿里内部版本已经支持mysql和oracle部分版本的日志解析,当前的canal开源版本支持mysql 5.7及以下的版本。
基本原理:
canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议
mysql master收到dump请求,开始推送binary log给slave(也就是canal)
canal解析binary log对象(原始为byte流)
工作原理
工作原理
原理相对比较简单:
canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议
mysql master收到dump请求,开始推送binary log给slave(也就是canal)
canal解析binary log对象(原始为byte流)
Canal安装配置
wget https://github.com/alibaba/canal/releases/download/canal-1.1.3/canal.deployer-1.1.3.tar.gz
解压
tar xzf canal.deployer-1.1.3.tar.gz
配置
cd /service/canal/conf
vim canal.properties //全局canal服务配置
canal.id= 41 //每个canal server实例的唯一标识
canal.zkServers=192.168.200.44 //zookeeper地址,不设置默认单节点模式,设置的话通过zookeeper维护热备切换
#canal.instance.global.spring.xml = classpath:spring/file-instance.xml //通过文件维护偏移量
canal.instance.global.spring.xml = classpath:spring/default-instance.xml //利用zookeepr维护偏移量信息
vim example/instance.properties //每个instance一个单独配置
canal.instance.master.address=192.168.200.30:3306 //数据库IP端口
canal.instance.master.journal.name=mysql-bin.000030 //从哪个binlog文件开始dump
canal.instance.master.position=107 //binlog文件偏移量
canal.instance.master.timestamp= 1557454483242 //ms
canal.instance.dbUsername=root //数据库用户名
canal.instance.dbPassword=123456 //数据库密码
canal.instance.connectionCharset mysql= UTF-8 //数据解析编码
canal.instance.filter.regex= canal.test1
//
mysql 数据解析关注的表,Perl正则表达式.多个正则之间以逗号(,)分隔,转义符需要双斜杠(\\)
常见例子:
1. 所有表:.* or .*\\..*
2. canal schema下所有表: canal\\..*
3. canal下的以canal打头的表:canal\\.canal.*
4. canal schema下的一张表:canal.test1
5. 多个规则组合使用:canal\\..*,mysql.test1,mysql.test2 (逗号分隔)
copy整个canal目录到另一个节点服务器(单节点不用)
修改canal.properties中的canal.id=42(单节点不用)
启动canal
/service/canal/bin/startup.sh
Mysql配置修改
vim /etc/my.cnf
binlog_format=row
同步数据到dataworks数仓
未完待续...
canal实时同步oracle,canal反向同步数仓方案相关推荐
- 使用canal实时同步MySQL数据到Elasticsearch
使用canal实时同步MySQL数据到Elasticsearch 搭建环境 安装 elasticsearch 安装 kibana 下载和安装canal 1.下载canal 2.配置MySQL 3.配置 ...
- mysql数据实时同步:Canal安装部署、kafka安装、zk安装、mysql安装、Canal Server+Canal Client HA,Canal+mysql+Kafka,相关验证(学习笔记)
目录 Canal安装部署 1.1. 服务器准备 1.2. 设置主机名并配置hosts 1.3. 免密设置 1.4. 设置ntp时间 1.5. 关闭防火墙 1.6. 关闭selinux 1.7. 安装J ...
- canal数据同步(canal安装)
下载安装Canal服务 下载地址: https://github.com/alibaba/canal/releases (1)下载之后,放到目录中,解压文件 cd /usr/local/canal c ...
- Canal实时同步数据到RocketMQ
环境准备 Canal 1.1.5:https://blog.csdn.net/qq_28834355/article/details/117785317 RocketMQ 4.8.0:https:// ...
- DB与ES混合应用之数据实时同步
一.技术背景 DB与ES本质上是属于不同应用领域的数据库产品,混合应用在一起主要面临2个问题 : 同步实时性,数据在DB更新之后,需要多久才能更新到Elasticsearch,多久的时间是应用系统可以 ...
- Ogg For Bigdata 同步Oracle数据到KAFKA(包括初始化历史数据)
OGG同步Oracle数据到KAFKA:OGG初始化进程初始化历史数据 在前面曾写过几篇关于OGG同步Oracle等库数据到kafka的文章: OGG实时同步Oracle数据到Kafka实施文档(供f ...
- 【Linux下Inotify + Rsync文件实时同步】
Linux下Inotify + Rsync文件实时同步 一.使用前言* 随着公司业务的发展,单web服务器不能满足用户的访问,需要增加多台web服务器实现均衡高可用性访问.为了统一各web服务器之间的 ...
- flink实时同步mysql_基于Canal与Flink实现数据实时增量同步(一)
点击上方蓝色字体,关注我 canal是阿里巴巴旗下的一款开源项目,纯Java开发.基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL(也支持mariaDB). 准备 配置 ...
- 如何基于Canal 和 Kafka,实现 MySQL 的 Binlog 近实时同步
转载自 如何基于Canal 和 Kafka,实现 MySQL 的 Binlog 近实时同步 近段时间,业务系统架构基本完备,数据层面的建设比较薄弱,因为笔者目前工作重心在于搭建一个小型的数据平台.优先 ...
最新文章
- Cell:肠道菌群促进帕金森发生ParkinsonDisease
- python基础教程:类型转换和舍入
- 腾讯邓君:《王者荣耀》翻过的同步技术相关的三座大山
- jeasyUI的treegrid批量删除多行
- html显示文件代码提示,代码提示和代码完成
- 【ECSHOP插件】ECSHOP商品相册批量上传插件
- 计算机桌面保护程序,屏幕保护程序软件
- 【IoT】智能硬件 | 基于电力线的视频监控系统
- Ubuntu 18.04 安装 Wine
- 【线性代数】6-6:相似矩阵(Similar Matrices)
- 仙境传说 第一章之四 卢渊*梦魇过后的情缘
- 金万维未找到服务器信息,域名解析失败原因和问题排查方法
- 深度学习之蛋白质二级结构预测
- (笔记本)电脑WLAN 点不开,显示WLAN 已关闭。
- Microsoft Edge浏览器不兼容解决办法
- 放开二妻你会拼命一点儿工作么|独秀日记
- 【2019-游记】中山纪念中学暑期游Day5
- socket系列之什么是socket
- 从元宇宙的人、货、场展望2022年元宇宙发展趋势
- 我的世界服务器回到死亡位置,我的世界返回死亡地点指令是什么