数据库所在服务器上安装了3块网卡,配置的IP分别是192.168.1.110、192.168.1.111、192.168.1.112.
    在客户端上配置tnsnames.ora时,其中主机设置如下:
ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.110)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.111)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.112)(PORT = 1521))
    测试时,我只连一根网线,从客户端访问服务器,
    当连通192.168.1.110时,连接时间很短,几乎可以忽略;
    但是当连通192.168.1.111时,连接时间在25s左右,这个时间会对应用产生较大影响;
    当连通192.168.1.112时,连接时间更长。
    现在的问题是,我不了解ADDRESS_LIST设置多主机地址的链接原理,从结果分析,应该是先连接第一个主机字符串,连接不通时在尝试连接第二个,以此类推。
    我想请教一下,能不能在配置文件中设置一下连接时间的上限,比如,我把时间设为5s,如果连接第一个主机字符串的时间超过5s,我就去尝试连接第二个主机字符串。这样的话可以保证我能在15s之内访问数据库。
    请路过的高手不吝指点。

解决方案 »

  1.   

    配置多主机,多数是群集下使用的。如:RAC =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.3.19)(PORT = 1521))
          (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.3.20)(PORT = 1521))
          (LOAD_BALANCE = yes)
        )
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = rac)
        )
      )由于你的配置没有设置(LOAD_BALANCE = yes),所以没有负载均衡,这时ORACLE是按你列出的IP一个一个的去尝试连接的
      

  2.   

    你说的时间配置,tnsnames.ora是没有这个配置的,得看一下sqlnet.ora中没有这个参数可配
      

  3.   

    sqlnet.ora中的这个参数,我估计是你想要的东东(没做测试,不好下结论)#
    #
    #names.initial_retry_timeout = 30
    #
    #Syntax:  1-600 seconds
    #Default: 15 (OSD)
    #
    # Determines how long a client will wait for a response from a Names Server
    # before reiterating the request to the next server in the preferred_servers
    # list.
    #
      

  4.   


    同意 codearts 的观点..
      

  5.   

    谢谢大家,多谢codearts,刚才直接连着实验室内网做测试了,明天去实验室试试,我觉得有戏~~~~
      

  6.   

    试了试,还是不行,这两个参数适用于Onames命名方法,基本用于大型网络环境。
    革命尚未成功