Topic: Oracle客户端无法连接到服务器解决办法

ERP俱乐部

第 1 页 总共 1 页 [共有 1 条记录]


Posted by summerlan on 2013-06-19 09:33 上午

  今天尝试连接到oracle服务器,总没有成功,后来发现是服务器上开启了防火墙的缘故,于是防火墙增加了一个例外端口:1521,心想这回总该能连上了吧,因为oracle的监听程序的端口号就是1521,结果还是无法连接

  在网上查阅了一下资料,原来开启1521这个端口是不能解决问题的,oracle的network listener 只起一个中介作用,当客户连接它时,它根据配置寻找到相应的数据库实例进程,然后创建一个新的数据库连接,这个连接端口由network listener传递给客户机,此后客户机使用新端口号和服务器交互。这个新的连接端口是不可预知的,因而会被防火墙阻止。

  解决办法:

  Windows Socket2 规范有一个新的特性,就是Shared Socket,所谓共享套接字是指一个进程共享另一个进程的套接字(详见MSDN相关参考)。如果让network listener与数据库服务进程共享套接字,那么连接端口就不会变化。

  如何设置 Shared Socket?

  在注册表:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0上新建一个字符串值:USE_SHARED_SOCKET=true。如果安装了多个目录,则每个类似的目录都要设置:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEx (x目录编号)

  设置后要求重新启动实例