NAT环境ORA-12516/ORA-12510
环境
数据库RAC
应用程序使用JDBC的负载均衡地址连接数据库
负载均衡配置虚地址映射到数据库SCAN IP
/etc/hosts中配置scanname映射为负载均衡的虚地址
症状
应用程序通过负载均衡连接数据库时,报错:
ORA-12516: TNS : listener could not find instance with matching protocol stack
/etc/hosts配置中的scanname映射为数据库SCAN IP,应用程序直接使用数据库SCAN IP能够正常连接,故排除数据库服务器端的问题。
解决
官方 文档 ID 1555793.1 摘录
when client and database are on different networks and Network Address Translation (NAT) router is used for
translation. JDBC OCI and SQL*Plus connections work fine. JDBC connections using the HOST vip names work
fine over the NAT router, only connections using SCAN fail.
客户端和数据库服务器端经过NAT路由器,JDBC OCI和SQL*Plus连接正常。JDBC使用Host vip也正常。仅仅jdbc在NAT环境下连接SCAN
会有问题。跟我们症状非常吻合。官方建议jdbc驱动升级或者应用补丁。
选择更换jdbc驱动
12c jdbc driver 链接地址:http://www.oracle.com/technetwork/database/features/jdbc/jdbc-drivers-12c-download-1958347.html
使用jmeter验证。
首先下载11.2.0版本jdbc driver:ojdbc6.jar,保存于D:\apache-jmeter-2.13\lib
配置jmeter连接池,连接时报错 ORA-12516。
下载12c jdbc driver,删除ojdbc6.jar,上传ojdbc7.jar
jmeter连接数据库成功。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31142205/viewspace-2121673/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/31142205/viewspace-2121673/