开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

哥哥们,求教Flink:cdc读取oracle占用了很多session如何破解?

哥哥们,求教Flink:cdc读取oracle占用了很多session如何破解?

展开
收起
真的很搞笑 2023-08-20 19:26:07 66 0
1 条回答
写回答
取消 提交回答
  • 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 的官方支持。

    2023-09-20 11:08:30
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    PostgresChina2018_樊文凯_ORACLE数据库和应用异构迁移最佳实践 立即下载
    PostgresChina2018_王帅_从Oracle到PostgreSQL的数据迁移 立即下载
    Oracle云上最佳实践 立即下载

    相关镜像