Oracle RAC 数据库 jdbc 正在从不同的端口连接

Posted

技术标签:

【中文标题】Oracle RAC 数据库 jdbc 正在从不同的端口连接【英文标题】:Oracle RAC database jdbc is connecting from different ports 【发布时间】:2020-11-16 23:49:54 【问题描述】:

我正在尝试使用 oracle 驱动程序 ojdbc7 连接到 RAC 数据库(版本 11g),我的 url 描述符看起来像这样

jdbc:oracle:thin:@(DESCRIPTION_LIST=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=**myhost**)(PORT=1532)))(ADDRESS = (PROTOCOL = TCP)(HOST = **myhost**)(PORT = 1532))(CONNECT_DATA=(SERVICE_NAME=**my_service_name**))))

myhost 响应来自 6 个不同的 ip,但有一些 ip 连接到不同的端口。

为什么会这样?

有没有办法说使用特定的端口?

【问题讨论】:

你在使用监听器扫描吗?? 监听器在1532端口;当连接被移交给数据库实例时,它将使用不同的端口。这是您应该在Database Administrators 而不是在这里询问的问题。 【参考方案1】:

可能您的 RAC 没有使用 SCAN。

单一客户端访问名称 (SCAN) 是 Oracle Real Application Clusters 中使用的一项功能 为客户端提供单一名称以访问正在运行的任何 Oracle 数据库的环境 在一个集群中。您可以将 SCAN 视为集群中数据库的集群别名。好处是,如果您在集群中添加或删除节点或数据库,客户端的连接信息不需要更改。

SCAN 首次引入 Oracle Real Application Clusters (RAC) 11g 第 2 版,并在 Oracle RAC 12c 中提供了附加功能。使用单一名称访问集群以连接到该集群中的数据库允许客户端使用 EZConnect 和简单的 JDBC 瘦 URL 来访问集群中运行的任何数据库,与集群中运行的数据库或服务器的数量无关,也不管请求的数据库在集群中的哪些服务器上实际处于活动状态。

【讨论】:

以上是关于Oracle RAC 数据库 jdbc 正在从不同的端口连接的主要内容,如果未能解决你的问题,请参考以下文章

Oracle RAC JDBC connection string

RAC JDBC 配置

text JDBC负载均衡方式连接的Oracle双机RAC

oracle rac需要付费吗

SpringBoot 连接Oracle单机和RAC

WAS中间件,连接ORACLE数据库的问题,报ORA-12505