Flink CDC 1.13.3 oracle-cdc2.2 数据库Oracle19c遇到的问题 : CPU 使用率非常高 ,见下图经过排查发现: 下面的SQL查询频率非常高 ,每分钟上千次 (任务越多,使用的表越多,越频繁。)SELECT SCN, SQL_REDO, OPERATION_CODE, TIMESTAMP, XID, CSF, TABLE_NAME, SEG_OWNER, OPERATION, USERNAME, ROW_ID, ROLLBACK FROM V$LOGMNR_CONTENTS WHERE SCN > :1 AND SCN <= :2 AND ((OPERATION_CODE IN (5, 34) AND USERNAME NOT IN ('SYS', 'SYSTEM', 'PPS_EDW')) OR (OPERATION_CODE IN (7, 36)) OR (OPERATION_CODE IN (1, 2, 3) AND TABLE_NAME != 'LOG_MINING_FLUSH' AND SEG_OWNER NOT IN ('APPQOSSYS', 'AUDSYS', 'CTXSYS', 'DVSYS', 'DBSFWUSER', 'DBSNMP', 'GSMADMIN_INTERNAL', 'LBACSYS', 'MDSYS', 'OJVMSYS', 'OLAPSYS', 'ORDDATA', 'ORDSYS', 'OUTLN', 'SYS', 'SYSTEM', 'WMSYS', 'XDB') AND (REGEXP_LIKE(SEG_OWNER, '^T1_CCBSCF$', 'i')) AND (REGEXP_LIKE(SEG_OWNER || '.' || TABLE_NAME, '^T1_CCBSCF.T_CI_PARTNER$', 'i')) ))想问下大家 ,有没有遇到过, 是怎么处理的这个问题的, 感谢~
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在Flink CDC中,如果SQL查询频率过高,可能会导致CPU使用率过高。以下是一些可能的解决方案:
从你的描述来看,这个高CPU使用率的问题可能是由于Flink CDC在执行V$LOGMNR_CONTENTS查询时,对每个SCN都执行了一次这个查询,然后过滤出满足条件的记录。这个查询的频率非常高,每分钟可能有上千次,所以导致了CPU使用率非常高。
解决这个问题的方法主要有以下几点:
优化查询:你可以尝试优化V$LOGMNR_CONTENTS查询,例如通过索引或者分区来提高查询效率。你也可以考虑只查询必要的字段,而不是每次都查询所有字段。
调整Flink CDC的配置:你可以尝试调整Flink CDC的配置,例如通过增加批处理大小或者减少并行度来减少查询的次数。
使用缓存:你可以考虑使用缓存来存储已经查询过的记录,避免重复查询。
优化数据库性能:你可以考虑优化Oracle数据库的性能,例如通过调整内存分配、并发数等参数来提高查询效率。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。