我今天装了一下oracle11gR2、安装完成后、可以正常连接到数据库里面去。
但是从客服端连接不上去、不知道为什么、自己分析的原因如下:
 tnsnames.ora 里面的内容:# tnsnames.ora Network Configuration File: C:\app\Administrator\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )
listener.ora的内容:
# listener.ora Network Configuration File: C:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\app\Administrator\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:C:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
  )LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )ADR_BASE_LISTENER = C:\app\Administrator
以上的设定、服务器可以自己登录进数据库、
但是在客服端不可能也把HOST设定成localhost的~所以、我在服务器上面进行以下的测试:
我想把HOST = localhost 变更成 HOST = 服务器的机器名(sv1)或者服务器IP、
但是都不行、所以客户端就连接不上了、
不知道在客户端的HOST应该设定成什么? 才能连接上去。
所以、一直不知道为什么HOST不能改成机器名或者IP、但在10g里面就可以的阿?
望高手指点~
万分感激

解决方案 »

  1.   

    哥们,哥哥跟你一起~~期待高手出现~学习ing
      

  2.   

    客户端的配置HOST的值应该是服务器的IP地址如果还不行,可能是客服端本地配置不对
    在CMD命令行TNSPING一下,看能不能Ping通服务器
    格式是 tnsping orcl(orcl是你配置的实例名)
      

  3.   

    别名 =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = IP或者机器名)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = SID)
        )
      )别名任意取,程序访问是通过这别名进行的
    IP或者机器名是指服务器的
    端口默认为1521
    SID必须和服务器上的SID一致
      

  4.   

    你要说清楚客户端是走什么途径登陆的走oracle net要看客户端的tnsname怎么写的,走jdbc的不看tnsname
    本机的舰艇起来的话是不会有问题的
    还有那个拿sid和service name说事的朋友,很多情况下service name=sid,这个是人为造成的,并不是oracle规定的,所以SERVICE_NAME = SID这样写并不一定正确