【问题标题】:Connect to Oracle ATP with Nifi使用 Nifi 连接到 Oracle ATP
【发布时间】:2021-01-14 19:59:41
【问题描述】:

我正在尝试连接到 Oracle Cloud 上的 Oracle 数据库,这需要使用 SSL 钱包 + TNS 名称。 我已经在 docker 中设置了 Nifi,但是我无法连接到数据库。我已经使用 SSL 钱包测试了与数据库的连接,我可以从主机连接,但不能从 Nifi 连接。

我已经关注https://docs.oracle.com/en/cloud/paas/autonomous-database/adbsa/connect-jdbc-thin-wallet.html的instructed

Nifi 中 DB 连接池的设置如下:

Nifi DBCP settings

但是我收到无法解析 TNS 名称的错误。 Error Message

有人可以建议如何从 Nifi 连接到 Oracle ATP(或任何使用 SSL 钱包的 Oracle 数据库?)

【问题讨论】:

  • 请提供来自日志文件的完整错误堆栈跟踪。所以我们会看到来自 oracle 驱动程序的错误。还分享您的连接网址。请将所有内容作为文本。

标签: oracle apache-nifi ojdbc


【解决方案1】:

您正在使用 DBALIAS 形式的 jdbc:oracle:thin:@dblias

所以你需要一个 tnsname.ora 文件到(TNS_ADMIN 目录)

tnsname.ora 文件的格式为: DBALIAS = (连接字符串)

http://www.dba-oracle.com/t_sample_tnsnames.ora.htm

您可以直接使用带有描述的表单:

"jdbc:oracle:thin:@(description=(address_list=(address=(protocol=tcp)(port=1521)(host=prodHost))) (connect_data=(INSTANCE_NAME=ORCL)))";

【讨论】:

  • 感谢您的回复。这没有考虑到钱包的使用。要与钱包一起使用,您必须使用与证书+密钥库位于同一文件夹中的 tnsnames.ora 文件。所以我不能使用长格式 tns connect。
  • 你使用什么版本的jdbc?并且 /opt/jdbc/wallet/tnsnames.ora 可读
【解决方案2】:

您的网址看起来不错。请务必使用 Oracle 提供的最新 JDBC 驱动程序。 这是下载页面: https://www.oracle.com/database/technologies/appdev/jdbc-downloads.html

此外,您还必须拥有以下配套 jar 以及 ojdbc8.jar。这些 jar 包是:oraclepki.jar、osdt_core.jar、osdt_cert.jar。

另外请注意,当连接到 ADB-S 时,您可能希望在驱动程序中明确禁用 FAN,否则在创建第一个新连接时您会看到 10 毫秒的延迟。您可以在 ojdbc.properties(wallet.zip 的一部分)中将“oracle.jdbc.fanEnabled”设置为“false”。

【讨论】:

  • 感谢您的回复,我想我已经下载了。需要完全引用它们还是只需要引用 ojdbc 文件?并感谢属性建议,希望当我让它工作时会有所作为。 “Could not resolve the connect identifer of x_high”的错误信息是否表明正在加载 JDBC 文件和 TNS 文件,或者它与数据库的真正连接问题?
  • 错误提示您的 tnsnames.ora 文件未找到。确保在您的 url 中 TNS_ADMIN 中指定的路径是正确的。
猜你喜欢
  • 1970-01-01
  • 2021-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-04
相关资源
最近更新 更多