哥哥们,求教Flink:cdc读取oracle占用了很多session如何破解?
Flink 读取 Oracle 数据库时,可以使用 OracleCDCSource 连接器。OracleCDCSource 连接器会使用 Oracle CDC 采集数据。Oracle CDC 采集数据时,会创建一个 change capture session 来监听数据库的变更。每个 change capture session 占用一个 Oracle 会话。
如果您发现 Flink 读取 Oracle 数据库时占用了很多 session,可以尝试以下方法:
减少 change capture session 的数量。
可以通过 OracleCDCSource 连接器的 changeCaptureNum 属性来减少 change capture session 的数量。
使用 change capture session 池。
可以使用 OracleCDCSource 连接器的 changeCaptureSessionPool 属性来创建一个 change capture session 池。change capture session 池会在使用时创建 change capture session,并在不再使用时释放 change capture session。
使用 Oracle CDC 的 ChangeTrackingMode。
可以使用 Oracle CDC 的 ChangeTrackingMode 来控制 change capture session 的创建方式。Oracle CDC 有两种 ChangeTrackingMode 可供选择:
CONTINUOUS:这种模式会创建一个持续运行的 change capture session。
SNAPSHOT_ON_READ:这种模式会在读取数据时创建一个 change capture session。
使用 SNAPSHOT_ON_READ 模式可以减少 change capture session 的数量。
使用 Oracle CDC 的 ChangeConsumer。
可以使用 Oracle CDC 的 ChangeConsumer 来控制 change capture session 的创建方式。Oracle CDC 有两种 ChangeConsumer 可供选择:
TRANSACTION_BEGIN:这种 ChangeConsumer 会在事务开始时创建 change capture session。
TRANSACTION_END:这种 ChangeConsumer 会在事务结束时创建 change capture session。
使用 TRANSACTION_BEGIN 或 TRANSACTION_END 可以减少 change capture session 的数量。
如果您仍然无法解决问题,请联系 Oracle 的官方支持。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。