flinkcdc同步oracle数据,跑任务数小时后不同步数据

本文介绍了如何通过调整Debezium连接器的配置参数解决Oracle日志批次大小超过最大值的问题,并提供了一组个人配置示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.访问debezium官网
https://debezium.io/documentation/reference/1.6/connectors/oracle.html
我们发现默认配置参数的值为下图
在这里插入图片描述

2.把flink/conf/log4j.properties的日志级别改为DEBUG级别,重启flink集群
如果flinkcdc任务日志有如下DEBUG级别的日志且batchsize>=maxbatchsize.说明log.ming.batch.size.max设置太小了需要加大,默认是10万(100000)。
从下面日志看的出Batch size 500000,Max batch size 500000,batchsize已经超过maxbatchsize,所以50万还比较小还需要加大,只有bachsize小于maxbachsize才正常,具体可以根据自己的数据库来查询scn的变化,select current_scn from v$database;
建议把maxbatchsize以10倍(100万、1000万)的值依次往上加
proper.setProperty(“log.mining.batch.size.max”, “1000000”);

DEBUG io.debezium.connector.oracle.OracleStreamingChangeEventSourceMetrics [] - Updating batch size window. Batch size 502000. Min batch size 20000. Max batch size 500000.

个人配置:
proper.setProperty(“decimal.handling.mode”, “STRING”);
proper.setProperty(“log.mining.strategy”, “online_catalog”);
proper.setProperty(“log.mining.continuous.mine”, “true”);
proper.setProperty(“log.mining.batch.size.default”, “300000”);
proper.setProperty(“log.mining.batch.size.min”, “150000”);
proper.setProperty(“log.mining.batch.size.max”, “15000000”);
proper.setProperty(“log.mining.sleep.time.increment.ms”, “0”);
proper.setProperty(“log.mining.sleep.time.default.ms”, “0”);
proper.setProperty(“log.mining.sleep.time.max.ms”, “0”);
proper.setProperty(“log.mining.dml.parser”, “legacy”);
proper.setProperty(“table.include.list”, tableList);//tableList=“命名空间.表1,命名空间.表2”;
proper.setProperty(“database.serverTimezone”, “Asia/Shanghai”);
proper.setProperty(“database.tablename.case.insensitive”, “false”);
proper.setProperty(“scan.startup.mode”, “initial”);
有问题可以留言

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值