甚至有时会出现一种情况:
有时能用有时会报ora-12545
日前在itpub上也刚刚帮人处理了个这样的问题:
问题:
rac 环境 ora-12545 错误 local_listener已经配了
local_listener 两个节点都配了
还是ora-12545麻烦各位看看什么问题
hosts
#private network-eth1
10.0.0.19 moon-priv
10.0.0.21 sun-priv
#public network-eth0
192.168.1.19 moon
192.168.1.21 sun
#public virtul ip -eth0
192.168.1.20 moon-vip
192.168.1.22 sun-vip
SQL> show parameter local
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
local_listener string (ADDRESS = (PROTOCOL = TCP)(HO
ST = sun-vip)(PORT = 1521))
log_archive_local_first boolean TRUE
SQL> show parameter remote
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
remote_archive_enable string true
remote_dependencies_mode string TIMESTAMP
remote_listener string leetaf
remote_login_passwordfile string EXCLUSIVE
remote_os_authent boolean FALSE
remote_os_roles boolean FALSE
lsnrctl service
...
...
...
Service "leetaf" has 2 instance(s).
Instance "leerac1", status READY, has 2 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0 state:ready
REMOTE SERVER
(ADDRESS=(PROTOCOL=TCP)(HOST=moon-vip)(PORT=1521))
"DEDICATED" established:0 refused:0 state:ready
LOCAL SERVER
Instance "leerac2", status READY, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0 state:ready
REMOTE SERVER
(ADDRESS=(PROTOCOL=TCP)(HOST=sun-vip)(PORT=1521))
The command completed successfully
客户端
tnsnames.ora
。。。
。。。
leerac1=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.20)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = leetaf)
(INSTANCE_NAME = leerac1)
)
)
leerac2=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.22)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = leetaf)
(INSTANCE_NAME = leerac2)
)
)
leetaf2 =
(DESCRIPTION =
(LOAD_BALANCE = yes)
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.20)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.22)(PORT = 1521))
(connect_data=(SERVICE_NAME = leetaf))
)
连接时候总报错
ora-12545 因目标主机或对象不存在,连接失败
答案:
客户端
tnsnames.ora
。。。
。。。
leerac1=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.20)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = leetaf)
(INSTANCE_NAME = leerac1)
)
)
leerac2=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.22)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = leetaf)
(INSTANCE_NAME = leerac2)
)
)
leetaf2 =
(DESCRIPTION =
(LOAD_BALANCE = yes)
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.20)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.22)(PORT = 1521))
(connect_data=(SERVICE_NAME = leetaf))
)
试试上面不要这样写,而采用下面的方式:
修改/etc/hosts加上
192.168.1.20 moon-vip
192.168.1.22 sun-vip
然后tnsnames.ora里面不要直接用ip,而是用moon-vip和sun-vip
再不行把
#public network-eth0
192.168.1.19 moon
192.168.1.21 sun
也加到hosts文件里
如果windows就改 system32/drivers/etc/hosts
结果:
回复 #10 wa0362 的帖子
加了在客户端配了 hosts 好了
帖子连接:http://www.itpub.net/viewthread.php?tid=1247264&extra=&page=1
猜测两种可能的原因:以下内容纯属猜测,没找到官方文档证明
当有监听器的LOAD_BALANCE时 ,每当client建立一个链接的时候listener是需要给client一个地址去连接的,但是它给的并不是ip,而是给的hostname,所以客户端再用这个hostname去链接的时候自然就要报"ora-12545 因目标主机或对象不存在,连接失败"
或者是假如要被重定向到remote listener是会用hostname去连接,而如果是local listener则因为已经建立连接就会能成功
nnd,白猜了,metalink找到官方证据了:[ID 553328.1]
Problem : Client connections to RAC database servers fail with ORA-12545 / TNS-12545
Cause: One of the hostname (which corresponds to public IP or VIP) is not reachable from this client machine.
When the server side load balancing is enabled in the RAC setup, the listener will redirect the connection to the least loaded node.While doing so, the server sends the packet NSPTRD containing the hostname of the corresponding machine.
相关推荐
ORA-12154: TNS: 无法解析指定的连接标识符的解决方法
本文旨在探讨如何接近并解决ORA-12518/TNS-12518错误,并提供详细的故障排除指南。 #### 最后审核日期 本指南最后审核于2008年1月29日,确保了内容的时效性和准确性。 #### 故障排查细节 ##### 第一部分:处理...
### ORA-12560 TNS 协议适配器错误详解 #### 一、概述 在Oracle数据库管理过程中,经常会遇到各种各样的错误提示,其中“ORA-12560 TNS: 协议适配器错误”是较为常见的一种。这种错误通常发生在客户端尝试连接到...
oracle远程连接服务器出现 ORA-12170 TNS:连接超时 解决办法,需要的朋友可以参考一下
oracle报错ora-12541:TNS无监听程序
ORA-12518 TNS:监听程序无法分发客户机连接,在您安装好数据库后配置连接数据库的过程中遇到这类问题应该很头疼吧,不过,当您还是四处查资料来解决您遇到的另你头疼的问题时,如果不经意间看到了这则贴子,那请您升...
ora-12170 tns 连接超时问题解决方案 在本文中,我们将讨论 ora-12170 tns 连接超时问题的解决方案,该问题常见于客户端无法连接到服务器的情况。本文将从三个方面入手,分别是 tns 配置文件、服务器防火墙和路由...
解决ORACLE TNS: 无法解析指定的连接标识符; 里面有步骤
实验得来的,不是随便copy的, ORA-12560TNS协议适配器错误,这个问题可定可以解决
ORA-12154_TNS无法解析指定的连接标识符
"ORA-12516 TNS 监听程序无法找到匹配协议栈的可用句柄" oracle 数据库是当前最流行的关系型数据库管理系统之一,然而,在使用 oracle 数据库时,经常会遇到各种错误信息,ORA-12516 错误信息便是其中之一。ORA-...
ora-12514:TNS:监听程序当前无法识别连接描述符中请求的服务bug,解决文档.
ORA-12154_TNS无法解析指定的连接解决方法 包含多钟可能的情况的解决方式。
### Oracle 错误 ORA-00132 和 ORA-00214 解析及处理 #### 一、错误概述 在Oracle数据库管理过程中,遇到ORA-00132和ORA-00214这类错误时,往往意味着数据库配置或启动过程中出现了问题。下面将对这两个错误进行...
ORA-12541 TNSno listener 的解决方案 ORA-12541 TNSno listener 的解决方案
ORA-12560_TNS协议适配器错误_的问题
最近在工作中遇到了一个问题,错误是Oracle dbca时报错:ORA-12547: TNS:lost contact,通过查找相关的资料终于找到了解决的方法,下面分享给大家,话不多说了,来一起看看详细的介绍吧。 环境: OS:RHEL6.5 x86-...