更改主机名后,连接Oracle实例出现Ora-12154:TNS错误

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

23 个解决方案

#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


换成IP地址试下

#10


把配置中的主机名改成本机ip,应该可以解决

#11


该回复于2007-12-19 10:52:08被版主删除

#12


刚遇到这问题,谢谢!

#13


重新设置,换个IP试试

#14


我修改计算机的名称后也遇到过你说的情况。但我修改了目录: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))
    )
  )

#15


LISTENER = 
  (DESCRIPTION_LIST = 
    (DESCRIPTION = 
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)) 
    ) 
    (DESCRIPTION = 
      (ADDRESS = (PROTOCOL = TCP)(HOST =  127.0.0.1)(PORT = 1521)) 
    ) 
  )

修改后再重启数据库监听程序。
lsnrctl start;

#16


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

#17


把TNS里的主机名改为本机IP

#18


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

#19


直接用IP地址,就不会有这个问题了

#20


学习,留下爪印。。。。。。。。。。。

#21


  # 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)
    )
  )

#22


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

#23


修改成IP就可以了。

#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


换成IP地址试下

#10


把配置中的主机名改成本机ip,应该可以解决

#11


该回复于2007-12-19 10:52:08被版主删除

#12


刚遇到这问题,谢谢!

#13


重新设置,换个IP试试

#14


我修改计算机的名称后也遇到过你说的情况。但我修改了目录: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))
    )
  )

#15


LISTENER = 
  (DESCRIPTION_LIST = 
    (DESCRIPTION = 
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)) 
    ) 
    (DESCRIPTION = 
      (ADDRESS = (PROTOCOL = TCP)(HOST =  127.0.0.1)(PORT = 1521)) 
    ) 
  )

修改后再重启数据库监听程序。
lsnrctl start;

#16


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

#17


把TNS里的主机名改为本机IP

#18


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

#19


直接用IP地址,就不会有这个问题了

#20


学习,留下爪印。。。。。。。。。。。

#21


  # 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)
    )
  )

#22


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

#23


修改成IP就可以了。