canal 支持oracle

2023年 8月 4日 26.1k 0

Canal是阿里巴巴开源的一款基于MySQL协议的增量数据同步工具,能够对MySQL中的数据变更进行实时监控,然后将其同步到目标端。Canal支持多种目标端,包括Kafka、RocketMQ、canal-adapter等。此外,Canal也支持Oracle数据库。今天我们就来谈谈Canal支持Oracle的相关内容。

首先,从版本上来看,Canal从1.1.4版本开始支持Oracle数据库。Canal同步Oracle数据库的方式与同步MySQL数据库不同,因为Oracle和MySQL的协议不同。在同步Oracle数据库之前,需要先创建一个同步任务,使其对Oracle的DDL语句、表结构、数据等进行实时监控。然后,Canal将监测到的变更封装成JSON格式,最终同步到目标端。

// 创建同步任务
{
// canal server配置
canal.instance.mysql.slaveId = 1234
canal.instance.master.address = 127.0.0.1:3306
canal.instance.master.journalName = mysql-bin.00001
canal.instance.master.position = 1024
// canal client配置
canal.client.serverMode = tcp
canal.client.tcp.host = 127.0.0.1
canal.client.tcp.port = 11111
// oracle数据源配置
canal.instance.filter.druid.filters = stat
canal.instance.filter.druid.useGlobalDataSourceStat = true
#
canal.instance.filter.regex.rule.druid = com.alibaba.druid.filter.logging.Log4jFilter
canal.instance.filter.regex.rule.database1 = test\\..*
canal.instance.filter.regex.rule.database2 = common\\..*
canal.instance.filter.regex.rule.table1 = test.user
canal.instance.filter.regex.rule.table2 = common.kv
// 目标端配置,这里以Kafka为例
canal.mq.servers = 127.0.0.1:9092
canal.mq.retries = 0
canal.mq.batchSize = 16384
canal.mq.maxRequestSize = 1048576
canal.mq.compressType = none
canal.mq.canalBatchSize = 50
}

当同步任务创建完毕后,在Canal监控的Oracle数据库端进行DDL操作时,Canal将会同步DDL语句到目标端。除了DDL语句,Canal还支持同步Oracle数据库的多种数据类型,包括VARCHAR2、NUMBER、DATE、TIMESTAMP等。同时,Canal也能实时根据Oracle数据库的增量变更,将同步数据封装成JSON格式,并且推送到目标端。

总的来说,Canal支持Oracle数据库的实时数据同步,是一项非常重要的功能。通过Canal的支持,用户可以比较方便地在Oracle和MySQL之间进行数据交互,为企业级应用提供了非常有力的基础设施支撑。

相关文章

Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库
27 期 | 死锁(3)解决死锁
OB Cloud 云数据库在西南!深耕海量场景,构建现代数据架构
出行365:用国产数据库为国人出行“护航”
oracle 查询改写

发布评论