canal 支持oracle
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 1. 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 }