咨询下各位大佬,flinkcdc采集Oracle,database-name取了SID,schema

咨询下各位大佬,flinkcdc采集Oracle,database-name取了SID,schema-name设置也没错,查询的时候会出来下查询字段后再报连接错误,但是配置信息没错啊,还会是什么原因呢[ERROR] Could not execute SQL statement. Reason: oracle.net.ns.NetException: Listener refused the connection with the following error: ORA-12514, TNS:listener does not currently know of service requested in connect descriptor

展开
收起
游客3oewgrzrf6o5c 2022-07-08 16:49:13 425 分享 版权
阿里云 AI 助理回答
  1. 问题描述: 用户在使用Flink CDC采集Oracle数据时,尽管已正确配置了database-name(采用SID)和schema-name,但在查询过程中出现短暂的字段信息展示后,随即报出连接错误。具体错误信息为:Listener refused the connection with the following error: ORA-12514, TNS:listener does not currently know of service requested in connect descriptor

  2. 背景信息

    • Flink CDC:Apache Flink的Change Data Capture功能,用于捕获数据库中的数据变更事件(如INSERT、UPDATE、DELETE)。
    • Oracle SID与Service Name:在Oracle中,SID(System Identifier)是实例标识符,而Service Name则用于客户端连接,尤其在多实例环境下更为常见。配置Flink CDC连接Oracle时,通常需要准确指定服务名而非仅SID。
  3. 解决方案

    • 检查连接描述符:确保Flink CDC连接Oracle的连接字符串(connect descriptor)中使用的是正确的Service Name而非SID。即使您在database-name中指定了SID,在某些情况下,监听器可能期望一个明确的服务名来建立连接。

    • 验证TNS配置:检查Oracle客户端的TNSnames.ora文件,确认其中包含了指向目标数据库的正确服务名配置,且该服务名与Flink CDC配置中使用的相匹配。

    • 网络与防火墙设置:虽然本问题直接关联于服务名称识别错误,但同时检查网络连接和防火墙规则,确保没有阻止到数据库的连接请求也是必要的步骤。

  4. 注意事项

    • 服务名与SID区别:在Oracle数据库配置中,务必区分SID和服务名的概念,尤其是在使用现代Oracle版本或复杂部署架构时。
    • 环境一致性:如果近期有数据库IP变动,请确保相应地更新所有依赖此数据库连接的服务配置,包括但不限于Flink CDC的连接字符串。

通过上述步骤,可以针对性地解决由于服务请求不被监听器识别而导致的连接失败问题。如果问题依旧存在,建议进一步与数据库管理员合作,排查数据库端的监听配置及日志,以获取更详细的故障原因。您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。

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

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

收录在圈子:
实时计算 Flink 版(Alibaba Cloud Realtime Compute for Apache Flink,Powered by Ververica)是阿里云基于 Apache Flink 构建的企业级、高性能实时大数据处理系统,由 Apache Flink 创始团队官方出品,拥有全球统一商业化品牌,完全兼容开源 Flink API,提供丰富的企业级增值功能。
还有其他疑问?
咨询AI助理