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

各位大佬,问下 oracle-cdc从哪个版本开始不会锁表了?问题出在哪里?怎么解决?那2.4应该不

各位大佬,问下 oracle-cdc从哪个版本开始不会锁表了?问题出在哪里?怎么解决?那2.4应该不锁表了吧

展开
收起
真的很搞笑 2023-07-13 11:26:26 58 0
3 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    Oracle CDC 是 Oracle 数据库的一种变更数据捕获功能,可以实时捕获表的变更,并将其输出到外部系统以进行进一步的处理。在 Oracle 数据库中,从 10g 版本开始就提供了 CDC 功能,但是在不同的版本中 CDC 的实现方式和限制都有所不同。

    在早期的 Oracle CDC 版本中,由于 Oracle 数据库本身的限制,CDC 会对被捕获的表进行加锁,从而导致表的读写操作受到影响。但是,随着 Oracle 数据库的不断升级和改进,CDC 的实现方式也在不断优化,从而减少了对表的加锁操作。

    具体来说,从 Oracle 11g 版本开始,CDC 支持使用基于日志挖掘的方式来捕获变更,而不再需要使用基于触发器的方式。这种方式减少了对表的加锁操作,从而提高了 CDC 的性能和可靠性。另外,从 Oracle 12c 版本开始,CDC 支持使用多模式捕获方式,可以在不同的模式之间进行切换,以适应不同的应用场景。

    关于您提到的 Oracle CDC 2.4 版本,由于 Oracle 数据库的不同版本和配置情况可能会影响 CDC 的性能和可靠性,因此无法确保在所有情况下都不会出现表锁定的问题。如果您遇到了 CDC 锁表的问题,可以考虑以下几个方面来解决:

    升级 Oracle 数据库版本:如果您使用的是旧版本的 Oracle 数据库,可以考虑升级到较新的版本,以获得更好的 CDC 性能和可靠性。

    调整 CDC 配置参数:可以根据实际情况调整 CDC 的配置参数,例如更改 CDC 的捕获模式、调整并发度等,以减少对表的加锁操作。

    2023-07-30 09:38:08
    赞同 展开评论 打赏
  • 在 Flink CDC 中,Oracle CDC 的版本升级确实影响了表锁的问题。在早期的版本中,Oracle CDC 会对表进行锁定(Table Locking),导致其他操作无法对该表进行修改、插入或删除等操作。

    根据官方文档,在 Flink 1.12 版本中引入了 Oracle CDC 的改进,从而解决了表锁的问题。具体来说,从 Flink 1.12 版本开始,Oracle CDC 使用了新的机制来避免对表进行锁定,提高了并发性能和用户体验。

    如果您使用的是 Flink 2.4 版本,应该已经不会遇到 Oracle CDC 锁表的问题。然而,有时候在特定的环境或配置下,可能仍然会出现锁表问题。这可能是由于以下一些原因导致的:

    1. 并发度设置:如果您的任务的并行度设置过高,可能会导致 Oracle CDC 产生表锁的行为。可以尝试调整任务的并行度,以避免对同一表进行过多的并发操作。

    2. 数据库配置:某些 Oracle 数据库的配置参数可能会影响到 CDC 的工作方式。例如,事务隔离级别和锁定超时时间等参数的设置可能会导致锁表问题。建议检查数据库的相关配置,并进行适当的调整。

    3. CDC 版本和配置:确保您使用的是最新版本的 Flink CDC 和 Oracle CDC 插件,并根据官方文档中提供的最佳实践进行相关配置。

    如果仍然遇到锁表问题,建议参考 Flink 的官方文档、社区讨论或咨询 Flink 社区专家,以获取更详细的技术支持和指导

    2023-07-29 23:08:01
    赞同 展开评论 打赏
  • 文档上说是2.3,但是我看有人用2.3还锁表,此回答整理自钉群“Flink CDC 社区”

    2023-07-13 15:42:58
    赞同 展开评论 打赏

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

相关电子书

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

相关镜像