http://expert.csdn.net/Expert/topic/953/953699.xml?temp=.8665888
防火墙设置中应把1521端口放开。

解决方案 »

  1.   

    仅仅开放1521端口还不行吧.
    用到了很多其它端口
    可以通过netstst查询到
    -------------------
    连接请求是1521,但实际连接的端口是动态分配的
      

  2.   

    监听器默认端口是1521,但它会发生重定向。
     首先要确保ping是好的。然后就是端口需要在防火墙上放开,如果一个端口不行,就多开几个。linux不知道是否已经有了那个环境变量(unix)上是安装了oracle就会有的。服务器上的配置没有问题吗?你可以把问题一个个的排除,加上跟踪,查看跟踪信息来帮助分析问题。
      

  3.   

    我曾经遇到防火墙,开1521是不可以的,后来通过nt下的netstat查看端口连接情况,发现不仅仅是1521,后来我猜想连接请求是1521,但实际连接的端口是动态分配的。
    而且防火墙网管说从我服务器上连接的端口也不仅仅是1521。
      

  4.   

    默认端口是1521,但实际上会是4000之类的端口号。但如何你只开放1521,且把USE_SHARED_SOCKED设置为true,连接正常。
      

  5.   

    这个跟软件好象没有多大关系,搞网络管理的硬件人员好象都会。我没作过oracle的,作过sql server的,原理应该一样的。
      

  6.   

    搞网络硬件的都会?那配置orcle连接的人都不用知道任何oracle的知识了!配置连接的时候,只能说保证网络连通性是首要问题。
      

  7.   

    楼上的朋友,不管你相信不相信,我在一个单位做实施时,我们的程序没有做任何修改,他们网络处的人在防火墙给我们新开了一个1433端口,weblogic连接防火墙内部的sql server数据库就成功了。
      

  8.   

    咳咳,hlhtyql(南方人),对你没有什么可说的了,希望你能多了解一些oracle的东西再到这里发表高见.
      

  9.   

    oracle重定向端口是随机分配的
      

  10.   

    我对oracle是不熟悉,倒很想看看 jiezhi(西域浪子) 的高招,这样我也可以去客户那里实施。当务之急是catalog (袄法)需要解决问题,否则这个项目还如何实施?我也盼望其他高手赐教,权当是一次学习的机会。
      

  11.   

    http://expert.csdn.net/Expert/topic/953/953699.xml?temp=.8665888
    这个上面是我做成功的一个例子,可以参考的。
      

  12.   

    http://expert.csdn.net/Expert/topic/953/953699.xml?temp=.8665888死链接,怎么看?
      

  13.   

    client-----firewall------server  
    平台都是win2k  server+oracle8.1.6  
    firewall  是checkpoint的;  
    client---server  ping  ok,tnsping  ok,但就是连接不上:tns超时,  
    且无论怎么设置超时的时间,它都是大概经过15秒后出现该错误提示。  
    但如果不通过防火墙,连接正常。  
    需要强调的是:防火墙是放开的,同时,另一unix服务器,也是oracle8.1.6,客户端通过防火墙却能正常连接。  
     
    解决办法:  
    在win2k的系统变量中添加变量:TNS_ADMIN,它的值设置为:  
    d:\oracle\oracle8i\network\admin  也就是存放listener.ora等文件的路径;  
    在注册表中添加字串值:TNS_ADMIN  它的值同上;  
    再添加字串值:USE_SHARED_SOCKED,值设置为TRUE,重新启动计算机.
      

  14.   

    偶是linux系统to 南方人:你说的没错,sql server是没问题,但是oracle就不行:sql plus连接它很正常,但是weblogic就是不行
      

  15.   

    oracle的连接是通过客户端的service启动oracle的连接主键,通过默认端口1521由tcp/ip向服务器提出请求,服务器的连接主键向服务器提出连接请求,服务器的监听程序检测到该请求,将连接信息反馈给oracle服务器的连接主键,再反馈给oracle客户端的连接主键,这样就建立服务器与客户端连接会话。(个人理解)
    oracle是通过进程管理的,sql server是线程的,所以jiezhi(西域浪子)说的没错。
    默认端口是1521,但实际上会是4000之类的端口号。但如何你只开放1521,且把USE_SHARED_SOCKED设置为true,连接正常。南方人说的sql server也没错,不过要注意Sql server跟Oracle是完全不同的。
      

  16.   

    补充:
    要方位防火墙后面的一个Oracle数据库,需要满足一下准则:
    1、除非网络管理员已为远程主机设置了一个别名,否则Tnsnames.ora文件必须完全指定这个主机。
    2、必须恰当配置基本网络。服务器必须能够相互Ping,防火墙必须允许这种通信量形式,远程监听器必须正在运行和可用。
    3、必须知道远程站点的监听器端口号,把这个端口号存放再Tnsnames.ora文件中。比如指定为fld.com位置上的机器名Server1,Host文件的条目可能是:
    server1.fld.com
    在FLD1实例的Tnsnames.ora文件中,Service的配置条目如下:
    fld1 = 
    (Description = 
       (Address_list =
           (Address = (Protocol = Tcp)
           (Host = server1.fld.com)(Port = 1521)
       ) 
           (Connect_data = (Sid = fld1))
    )
    如果服务器名、端口号或实例名发生变化,必须确保客户端站点和远程站点之间保持一致。