数据库服务器是的操作系统是linux(red hat),
客户端的tns配置如下:
GY1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521)) //192.168.0.1是漂移地址。
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)登陆的时候经常报错。ORA-12545: 因目标主机或对象不存在,连接失败,报错后重新登陆,还能登陆上去。
10次的话,有5次正常,5次不正常吧。
客户端的tns配置如下:
GY1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521)) //192.168.0.1是漂移地址。
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)登陆的时候经常报错。ORA-12545: 因目标主机或对象不存在,连接失败,报错后重新登陆,还能登陆上去。
10次的话,有5次正常,5次不正常吧。
浮动IP是如何实现的?
Action: Ensure the ADDRESS parameters have been entered
correctly; the most likely incorrect value is the node name.Copyright (C) 1995, Oracle Corporation
错误消息提示的很清楚,你在配置TNS LISTENER的时候DB主机地址有误,你是不是用的IP协议?
这时候你可能指定的主机名没有办法被DNS解析,方法:直接在主机地址里输入SERVER的IP地址使用tnsping来测试一下,如:
C:\>tnsping 192.168.0.2
TNS Ping Utility for 32-bit Windows: Version 8.1.7.0.0 - Production on 04-4月 -2
005 15:01:54
(c) Copyright 1997 Oracle Corporation. All rights reserved.
TNS-03505: 未能分解名称-------------------------------------------------------------------
看看你的ORACLE数据库是否没有起来,或者IP地址改变了!
再看看TNSNAMES.ORA文件中host name是不是正确!
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\Oracle\Oracle10g)
(PROGRAM = extproc)
)
后面添加:
(SID_DESC =
(GLOBAL_DBNAME = ORACLE)
(ORACLE_HOME = D:\Oracle\Oracle10g)
(SID_NAME = ORACLE)
) GLOBAL_DBNAME与SDI相同最后变成:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\Oracle\Oracle10g)
(PROGRAM = extproc)
) (SID_DESC =
(GLOBAL_DBNAME = ORACLE)
(ORACLE_HOME = D:\Oracle\Oracle10g)
(SID_NAME = ORACLE)
)
)
GY1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521)) //192.168.0.1是漂移地址。
)
(CONNECT_DATA =
(SID = orcl)
)
)
SERVICE_NAME方式,通常需要给出数据库的完整名(比如orcl.UUCP.COM),而SID则不需要。