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

Flink CDC里这个必须使用没有增量快照的模式进行同步吗?

Flink1.15、Oracle19c、FlinkCDC2.4.2,CDB+PDB模式,数据无法同步,指定了PDB和CDB,看情况似乎是cdc在CDB里找要同步的表,但是需要同步的表在PDB里,有什么办法解决吗?

展开
收起
小小鹿鹿鹿 2024-05-07 18:46:06 39 0
2 条回答
写回答
取消 提交回答
  • 要开启checkpoint。ace104d9da103f6cb15736da335da4af.png此回答来自钉群Flink CDC 社区。

    2024-05-07 19:15:42
    赞同 展开评论 打赏
  • 在使用 Flink CDC 与 Oracle CDB + PDB 结构配合时,确实需要注意数据库的配置和访问方式。由于 Flink CDC 是基于数据库的变更日志进行数据同步,所以在配置时需要确保指向正确的数据库实例和表。在 Oracle 19c 的多租户架构中,PDB(Pluggable Database)是包含用户数据的逻辑容器,而 CDB(Container Database)是物理容器,包含了多个 PDB。

    如果遇到数据同步问题,且表实际位于 PDB 中,但 CDC 配置似乎在 CDB 层面查找表,可能需要以下步骤来解决问题:

    1. 确认用户权限:使用全局用户时,确保该用户在 CDB 中有权限访问 PDB,并且该用户能够读取 PDB 中的表。Oracle 在 CDB 中的全局用户可以通过 ALTER SESSION SET CONTAINER 命令切换到特定的 PDB。

    2. 配置Flink CDC

      • 使用 database.pdb.name 参数指定要同步的 PDB 名称,同时确保 database.name 设置为 CDB 的名称。
      • 确认配置文件中的 table.whitelisttable.blacklist 正确指定了要同步的表,包括它们所在的 PDB。
    3. 启动选项

      • 确保 Flink CDC 作业的启动选项正确,例如使用 initialization-mode 参数来指定全量或增量的启动方式。默认情况下,Flink CDC 会尝试从数据源的最新状态开始进行增量同步,除非你使用了 initialization-mode=latest-offsetinitialization-mode=snapshot 来指定特定的起点。
    4. 日志与调试

      • 查看 Flink 作业的日志输出,寻找任何关于连接失败、权限错误或找不到表的提示。
      • 在 Flink 的 Web UI 中查看作业的状态和错误信息,以获取更详细的运行时信息。
    5. 测试与验证

      • 在单独的 SQL 查询中验证全局用户能否从 PDB 访问并查询表,以排除数据库层面的问题。
      • 使用较小规模的测试数据和简化配置进行测试,以确定问题所在。
    6. 社区支持

      • 如果问题仍然存在,可以考虑在 Flink 社区或 Oracle 社区发帖询问,提供详细的配置信息和错误日志,以便其他人能够帮助诊断。

    请确保在配置和测试时,使用的是与生产环境相同的用户和权限设置,以确保问题定位的准确性。如果 Flink CDC 必须在没有增量快照的模式下运行,那可能是由于配置或数据库设置的问题,而不是 Flink CDC 的强制要求。

    2024-05-07 19:15:39
    赞同 1 展开评论 打赏

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

相关产品

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

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载