开发者社区 问答 正文

flinkcdc采集oracle,oracle数据库是CDB的

flinkcdc采集oracle,oracle数据库是CDB的,添加了'debezium.log.mining.strategy' = 'online_catalog', 'debezium.log.mining.continuous.mine' = 'true'这两个参数以后,报用户名不存在了。。。不设置这两个参数,可以正常采集,大家有遇到过的没?PDB的数据库,设置这两个参数,可以正常采集。就很奇怪3.png

展开
收起
游客3oewgrzrf6o5c 2022-06-21 10:07:11 570 分享 版权
阿里云 AI 助理回答

遇到您描述的问题,可能是由于在CDB模式下配置特定的Debezium参数导致的权限或配置不匹配。这里有几个排查和解决的步骤供您参考:

  1. 问题理解

    • 您在Oracle CDB环境中使用Flink CDC采集数据时,添加了参数'debezium.log.mining.strategy' = 'online_catalog''debezium.log.mining.continuous.mine' = 'true'后,报错提示用户名不存在。而在不设置这两个参数的情况下,数据采集能正常进行。
  2. 可能原因

    • 这两个参数的设置可能导致Debezium尝试以不同的方式访问数据库日志,可能涉及到更严格的权限要求或是与当前用户配置不兼容。
    • 特别是'debezium.log.mining.strategy' = 'online_catalog'可能会需要额外的系统权限来访问Oracle的数据字典。
  3. 解决步骤

    • 检查用户权限:确保用于连接Oracle的用户具有足够的权限来执行在线目录日志挖掘策略。这可能包括对数据字典视图的访问权限等。您可以参考之前提供的SQL命令来查询用户的系统权限和表权限。
    SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = '您的用户名';
    SELECT TABLE_NAME FROM DBA_TAB_PRIVS WHERE GRANTEE = '您的用户名';
    
    • 配置正确的连接用户:确认使用的数据库用户不仅存在于PDB中,而且在CDB级别也有相应的权限配置。如果需要,考虑创建一个具有适当权限的CDB级别的用户来进行数据采集。

    • 调整参数配置:如果上述权限检查无误,尝试调整Debezium配置参数,比如仅启用其中一个参数看是否可以正常工作,或者查阅Debezium最新文档了解这些参数在不同Oracle环境下的具体影响及所需权限。

  4. 注意事项

    • 在进行任何配置更改前,请务必备份相关配置和测试环境,避免生产环境受到影响。
    • 考虑到安全性,不要直接在生产环境中使用超级用户进行数据采集,而是为Flink CDC配置一个具有最小必要权限的专用用户。
  5. 引用

    • 之前的讨论已经提供了关于Oracle CDC配置、错误处理以及权限检查的相关信息,请结合实际情况灵活应用。

希望以上建议能帮助您解决问题,如果问题依旧存在,建议进一步查看Flink CDC或Debezium的日志输出,寻找更详细的错误信息,并考虑联系技术支持获取更专业的帮助。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答