最近遇到一个问题,配置一个oracle数据源怎么都连接不上,ping Ip可以连接通,且毫秒数都很小。telnet 也能连接 但是很快就自动断开。
别人也能连接oracle的数据库,我这边服务器不行,就很奇怪。各种方法都来试试。
SELECT NAME FROM V$DATABASE; --数据库名
SELECT instance_name FROM V$INSTANCE; --实例名
select global_name from global_name; --服务名
先查询下数据库的 实例名 数据库名 服务名各是什么,然后根据jdbc的url试着写。
JDBC的格式有以下三种:
格式一:jdbc:oracle:thin:@//<host>:<port>/<service_name>
格式二:jdbc:oracle:thin:@<host>:<port>:<SID>
格式三:jdbc:oracle:thin:@<TNSName>
类似这种:
jdbc:oracle:thin:@192.168.113.18:1521:orcl
jdbc:oracle:thin:@(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.18)(PORT = 1521)))(LOAD_BALANCE = off)(FAILOVER = ON) (CONNECT_DATA = (SERVICE_NAME = orcl)))
总是提示
我个人猜测还是网络有问题,找人问了之后给出几个测试办法:
nmap 192.168.1.18 -p 1521
nc -v 172.16.7.24 1521
用nmap看出点问题,连接能连接,但是花费了13.08秒,什么连接需要这么久,很有可能是网络设备有问题,有可能是策略不对或者防火墙设置的不对。
找个其他的数据库测试是很快的 基本0.5秒就可以了
最后终于找到问题,是IP给错了,该数据库有3个IP,就这个IP没有开放出来就给了我们。