Oracle RAC数据库在一台服务器上创建负载,客户端无法连接
几乎所有客户端连接都指向一台服务器,应用程序在一段时间后无法连接,出现IOException。负载平衡似乎无法正常工作。此时,我们被迫重新启动侦听器 jdbc URL:Oracle RAC数据库在一台服务器上创建负载,客户端无法连接,oracle,jdbc,oracle11g,Oracle,Jdbc,Oracle11g,几乎所有客户端连接都指向一台服务器,应用程序在一段时间后无法连接,出现IOException。负载平衡似乎无法正常工作。此时,我们被迫重新启动侦听器 jdbc URL:jdbc:oracle:thin:@(DESCRIPTION=(FAILOVER=ON)(LOAD\u BALANCE=yes)(ADDRESS=(PROTOCOL=TCP)(HOST=scan ip)(PORT=1538))(CONNECT\u DATA=(service\u name=production)(SERVER=专用
jdbc:oracle:thin:@(DESCRIPTION=(FAILOVER=ON)(LOAD\u BALANCE=yes)(ADDRESS=(PROTOCOL=TCP)(HOST=scan ip)(PORT=1538))(CONNECT\u DATA=(service\u name=production)(SERVER=专用))
例外情况:
Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Io exception: Connection reset)
at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)
... 60 more
Caused by: java.sql.SQLException: Io exception: Connection reset
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:414)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)
at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)
... 64 more
只是为了确保,当您说“所有连接都指向一个节点”时,您的意思是会话是在一个节点上创建的,还是负责连接的扫描侦听器仅在一个节点上使用
检查并查看扫描地址是否包含3个IP地址(nslookup SCAN IP),确保扫描侦听器分布在节点之间(srvctl status SCAN和srvctl status SCAN_listener)。您还可以检查您尝试使用的数据库服务(生产)是否已在所有适当的侦听器上注册(检查数据库参数“remote_listener”以确保服务注册到的位置)。生产服务是否有服务器端负载平衡?您可以使用1。会话是在一个节点2上创建的。如果已选中建议,则所有会话都已正确配置。是否定义“已正确配置”?您有多个扫描侦听器吗?他们监听的端口是否正确(1538)?如果我不得不猜测,您没有连接到扫描侦听器,而是连接到其中一个节点上的本地侦听器(因此扫描侦听器没有会话重定向)
11.2.0.4.0 - 64bit