D:\oracle\product\10.2.0\client_1\NETWORK\ADMIN\tnsnames.ora  (客户端)
D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora  (服务器)这两个配置文件分别起什么作用? 网络访问本机数据库为什么不能连通?别人网络访问我的机器不通,自己访问127.0.0.1 是通的,但改成主机名后,还是提示“无监听程序”。

解决方案 »

  1.   

    oracle配置文件,127.0.0.1是本地IP,如果你设置为127.0.0.1别人就不可以访问了
    你最好把tnsnames.ora里面的代码帖出来
      

  2.   

    tnsnames.ora是netManage的配置文件,这里面要是配不对的话,网络访问数据库肯定走不通,还是把你的配置文件帖出来,才有可能找到错误,凭感觉讲你可能是配错了端口号,或者没有加sid
      

  3.   

    1.需要关闭你的Oracle服务器的防火墙
    2.需要正确配置tnsnames,在客户端把这个文件配置成你的服务器的IP以及实例名
    3.确保你在服务器端使用的地址不是127.0.0.1的形式
      

  4.   

    问题续:
    实例名是lsbd,主机名是lsbd,本机IP是192.168.0.34
    在这个配置下,自己访问是通的,如果改动“127.0.0.1 为 IP 或者 lsbd” 都会提示“无监听程序”
    客户端tnsnames.ora的配置:
    # tnsnames.ora Network Configuration File: d:\oracle\product\10.2.0\client_1\NETWORK\ADMIN\tnsnames.ora
    # Generated by Oracle configuration tools.LSBD =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SID = lsbd)
        )
      )服务器端tnsnames.ora的配置:(试了一下,把服务器这个配置文件删除本机也能正常访问!...?)
    # tnsnames.ora Network Configuration File: D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora
    # Generated by Oracle configuration tools.LSBD =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = lsbd)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = lsbd)
        )
      )EXTPROC_CONNECTION_DATA =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
        )
        (CONNECT_DATA =
          (SID = PLSExtProc)
          (PRESENTATION = RO)
        )
      )
      

  5.   

    tnsname.ora在客户段配置错了吧?
    改成如下试试:
    LSBD = 
      (DESCRIPTION = 
        (ADDRESS_LIST = 
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.34)(PORT = 1521)) 
        ) 
        (CONNECT_DATA = 
          (SID = lsbd) 
        ) 
      )