摘要:在window的系统下,已经把1521的端口开放出去了,但是从另外一台机器连接服务器的时候 ,还是连不上。 只有把整个防火墙都关闭,才能使其他机器上连接到oracle的服务器。
这个原因,还是归结为window系统的一个问题,对于oracle来说,对客户端的连接请求都是通过listener来进行监听和处理的。listener的端口默认是1521.所以有很多的网友在此通常都知道要开放这个端口,不过listener在监听到客户的连接以后,会建立一个临时的端口并把端口号报之给客户端,接下来就由这个端口来和服务器端交互叻。这个端口是由listener分配的,所以没有办法确定,也就被防火墙拦住了。 在window下,由于linux下已经使用了共享socket解决临时sock的问题,所以linux开放了1521就可以了,window没有,所以有这样的问题。
不过还好,window的socket2 提供了share socket的技术,我们只需要通过很简单的步骤,就是让window系统下的oracle使用上share socket,从而解决我们的问题。
设置方法如下。我的版本是oracle 11G R2
1. 打开注册表
2. 找到[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1]这个目录
(9i和别的版本目录为[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0])
在其下加入一个字符串值
键:USE_SHARED_SOCKET
值: TRUE
3. 重启监听服务
现在再用客户端试试,应该就可以连上