我在本件创建了数据库实例。更改了主机名后出现了“ORA-12154: TNS: 无法解析指定的连接标识符”错误。检查了tnsnames.ora文件,也尝试对其修改。可依然不能解决。请各位大哥指教如何解决

解决方案 »

  1.   

    估计还是你的tnsnames.ora配置的不对
      

  2.   

    我访问的就是我本机的数据库实例,应该不需要配置tnsnames.ora也行的.我也尝试对tnsnames.ora中的配置修改了.还是不行.
      

  3.   

    1:看TNSNAME
    2:看LISTENER
      

  4.   

    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
          (PROGRAM = extproc)
        )
      )GENERATED BY ORACLE CONFIGURATION TOOLS. = Generated by Oracle configuration tools.LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = FHWL-MYH)(PORT = 1521))
        )
      )这是我listener.ora中的配置。“FHWL-MYH”是更改后的主机名
      

  5.   


    LISTENER =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = (改成IP地址))(PORT = 1521))
    )
    )
      

  6.   

    这样的问题,不知道出现的所在,你得在
    不知道你的Oracle的版本是多少,我这是8
    Oracl 的界面Network Administration中找到Net8 Assistant 手动添加一个配置了.
    我也是经常出现这问题.只能手动加了,但是在你做前,把你以前的文件tnsnames.ora备份一下啦.
      

  7.   

    love_2008(找DBA方面的工作中) 正解TNSNAME 和 LISTENER 里面的host都修改成修改后的主机名应该可以的
      

  8.   

    “FHWL-MYH”中的“-”可能会导致出错!
    系统支持,但Oracle不一定支持!
    如果是本机又不想改主机名可以用“127.0.0.1”比较方便!
      

  9.   

    我修改计算机的名称后也遇到过你说的情况。但我修改了目录:G:\oracle\product\10.1.0\db_1\NETWORK\ADMIN下的tnsname.ora和listener.ora中和计算机名称相关的地方后就正常了(我的oracle软件是安装在g盘下的)。
    修改方式见下面红色字体:
    1.tnsname.ora文件
    # tnsnames.ora Network Configuration File: G:\oracle\product\10.1.0\db_1\network\admin\tnsnames.ora
    # Generated by Oracle configuration tools.ORCLU =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = orcl)
        )
      )EXTPROC_CONNECTION_DATA =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
        )
        (CONNECT_DATA =
          (SID = PLSExtProc)
          (PRESENTATION = RO)
        )
      )2.listener.ora文件
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = G:\oracle\product\10.1.0\db_1)
          (PROGRAM = extproc)
        )
        (SID_DESC =
          (GLOBAL_DBNAME = orcl)
          (SID_NAME = orclu)
        )
      )LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
        )
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
        )
      )
      

  10.   

    LISTENER = 
      (DESCRIPTION_LIST = 
        (DESCRIPTION = 
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)) 
        ) 
        (DESCRIPTION = 
          (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) 
        ) 
      )修改后再重启数据库监听程序。
    lsnrctl start;
      

  11.   

    实例起来了没有呀。先检查一下实例的状况。这里listener已经是OK了,看是否是实力和tnsname的配置问题了。
      

  12.   

    1.TNS里的主机名改为本机IP
    2.重新运行NET confirgue assistant!
      

  13.   

      # tnsnames.ora Network Configuration File: F:\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora
    # Generated by Oracle configuration tools.ORCL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.81(本机IP地址))(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = orcl)
        )
      )EXTPROC_CONNECTION_DATA =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
        )
        (CONNECT_DATA =
          (SID = PLSExtProc)
          (PRESENTATION = RO)
        )
      )
      

  14.   

    tnsname
    listener
    sqlnet
    这三个文件只要涉及到计算机名的全改成你现在在的计算机名,或IP