因为错误是客户那边发生的,我这边没法直接测试,也没办法在本地的数据库上重现。
客户的数据库版本是10g,sqlnet.log里的信息:Fatal NI connect error 12545, connecting to:
 (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=sbksz)(CID=(PROGRAM=G:\Program?Files\DBScan\DBScan.exe)(HOST=LQ-TCNET)(USER=Oracle)))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.81.101)(PORT=1521)))  VERSION INFORMATION:
TNS for 32-bit Windows: Version 10.2.0.3.0 - Production
Windows NT TCP/IP NT Protocol Adapter for 32-bit Windows: Version 10.2.0.3.0 - Production
  Time: 20-MAY-2008 14:38:26
  Tracing not turned on.
  Tns error struct:
    ns main err code: 12545
    TNS-12545: Message 12545 not found; No message file for product=NETWORK, facility=TNS
    ns secondary err code: 12560
    nt main err code: 515
    TNS-00515: Message 515 not found; No message file for product=NETWORK, facility=TNS
    nt secondary err code: 1001
    nt OS err code: 0

解决方案 »

  1.   

    补充一下,我上网查了一下,都说是server端主机名被改之后和Oracle所配置的主机名不对应导致。
    但怎么修改会出现这样的问题呢?通常修改主机名之后windows需要重启,重启后listener启动会失败。
    如何修改主机名,又能让listener.ora运行按原来的配置运行着?
    我也试着修改tnsnames.ora,但由于不是分布式的数据库,好像这个配置文件没被用上,我怎么修改都不影响测试结果
      

  2.   

    把HOST=LQ-TCNET里的lq_tcnet修改成IP地址试一试,或者在hosts文件中加入lq_tcnet映射
      

  3.   

    修改主机名后使用netca重新配置一下监听器。另外如果是用EM的,要在修改完listener后停止并重新启动一下EM服务。
      

  4.   

    在windows/system32/drivers/etc中修改hosts文件,将IP地址对应到LQ-TCNET
      

  5.   

    修改主机名称:我的电脑-右键-计算机名称
    在windows下没有遇到过这种问题,一直在弄linux下的数据库,把windows快忘了,帮你顶一下吧
      

  6.   

    谢谢各位,从你们的回复,以及google的情况来看,结果基本上是差不多的。都是修改配置中的主机名或IP地址。
    看来我还是需要自己搞一套测试环境,才能弄完全明白,否则没法给客户建议。
    我先测试一下,得出结论,之后再来结贴。
      

  7.   

    看来有点想sql server 2000了,改了计算名,有时会不好使用的。你的那个配置文件在客户段和服务段都改了吗?
      

  8.   

    如大家所说需要修改listener.ora和tnsname.ora
    同时需要重启listener,已使修改生效。
    另外,不是分布式数据库就用不到tnsname了吗?
    楼主的意思是不是想表达“是本地应用,不涉及到对服务器的远程访问”这个意思。