问题示例:
在pc 机用sqlplus 连 总有 25% 的 连接失败, 报错: TNS-12545: Connect failed because target host or object does not exist
下面是一些相关配置:
listener.ora
----------------------------------------------------------------------------------------------------------
LISTENER_CNBEIORAPRD01 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 3.36.234.52)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 3.36.234.51)(PORT = 1521))
)
)
SID_LIST_LISTENER_CNBEIORAPRD01 =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
)
SQL> show parameter list;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
local_listener string
remote_listener string LISTENERS_JSST
more tnsnames.ora
.....
LISTENERS_JSST =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =3.36.234.52)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST =3.36.234.50)(PORT = 1521))
)
.....
more /etc/hosts
127.0.0.1 localhost.localdomain
3.36.234.51 cnbeioraprd01
3.36.234.53 cnbeiorastg01
3.36.234.52 cnbeioraprd01-vip
3.36.234.50 cnbeiorastg01-vip
192.168.1.1 cnbeioraprd01-priv
192.168.1.2 cnbeiorastg01-priv
原因:
当有监听器的LOAD_BALANCE时 ,每当client建立一个链接的时候listener是需要给client一个地址去连接的,但是它给的并不是ip,而是给的hostname,所以客户端再用这个hostname去链接的时候自然就要报"ora-12545 因目标主机或对象不存在,连接失败"当配置LB后,监听接收到请求后,假如要被重定向到remote listener,此时发给客户机的链接信息是remote listener的hostname,而不是IP
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.
Oracle在文档Note:364855.1:RAC Connection Redirected To Wrong Host/IP ORA-12545中进行了相信的描述。
并给出了解决方法:修改数据库中的初始化参数LOCAL_LISTENER:
SQL> CONN SYS@TESTRAC1 AS SYSDBA输入口令: ****已连接。
SQL> ALTER SYSTEM
2 SET LOCAL_LISTENER = '(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.198.224)(PORT = 1521))'
3 SID = 'testrac1';
系统已更改。
SQL> CONN SYS@TESTRAC2 AS SYSDBA输入口令: ****已连接。
SQL> ALTER SYSTEM
2 SET LOCAL_LISTENER = '(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.198.225)(PORT = 1521))'
3 SID = 'testrac2';
系统已更改。
-----------------------
+++ 如果效果不好 ,还可以
2.在服务器端racdb1,racdb2上分别编辑tnsnames.ora和listener.ora文件,将两个文件中的host主机名字均修改为具体的VIP地址
如将下面部分
LISTENERS_ORCL =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = racdb1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = racdb2-vip)(PORT = 1521))
)
改为:
LISTENERS_ORCL =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.12.21)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.12.22)(PORT = 1521))
)
3.在racdb1节点的tnsnames.ora增加如下内容
local_listener_rac =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.12.21)(PORT = 1521))
)
4.在racdb2节点的tnsnames.ora增加如下内容
local_listener_rac =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.12.22)(PORT = 1521))
)
4.使用 sqlplus / as sysdba 登陆数据库修改local_listener参数
alter system set local_listener='local_listener_rac' scope=both;
5.重启两节点的实例和监听
sys@orcl> shutdown immediate;
sys@orcl> startup;
$ lsnrctl stop
$ lsnrctl start
分享到:
相关推荐
错误描述:oracle远程连接服务器出现 ORA-12170 TNS:连接超时 错误检查:有很多是oracle自身安装的问题,但是我这里服务器配置正常,监听正常,服务正常,远程可以ping通服务器。 这里主要是防火墙问题,解决办法: ...
客户端进行连接的时候,系统不定期出现ora-12520,ora-12516的连接问题, 问题解决方案建议: 1、增加process和session的连接数。 2、检查连接的应用,是不是有没有释放的连接。 3、将修改参数local_listener中的vip为...
用oracle数据库新建连接时遇到ora-12505,此问题解决后又出现ora-12519错误,郁闷的半天,经过一番折腾问题解决,下面小编把我的两种解决方案分享给大家,仅供参考。 解决方案一: 今天工作时在新建连接的时候遇到...
oracle故障处理ora-03113
Oracle RAC环境修改字符集遇到ORA-00205解决方法.rar
Oracle10g RAC ASM 环境日常管理命令
前几天升级Oracle数据库,从11.2.0.1升级至11.2.0.4,安装完成后,打开PL/SQL,显示ORA-12514,如图: 问题阐述 ORA-12514:监听程序当前无法识别链接描述符中请求的服务,简单的来说就是Oracle数据库的监听器配置有...
今天有朋友问到如下一则案例,ORA-01114,ORA-27067以及OSD-04026错误同时出现: *** ACTION NAME:() 2009-04-01 09:31:00.762*** MODULE NAME:(JDBC Thin Client) 2009-04-01 09:31:00.762*** SERVICE NAME:(SYS$...
ORA-00001: 违反唯一约束条件 (.) ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 ORA-00019: 超出最大会话许可数 ORA-00020: 超出最大进程数 () ORA-00021: 会话附属于其它某些进程;无法转换会话 ...
问题处理过程
最近在工作中遇到了一个问题,错误是Oracle dbca时报错:ORA-12547: TNS:lost contact,通过查找相关的资料终于找到了解决的方法,下面分享给大家,话不多说了,来一起看看详细的介绍吧。 环境: OS:RHEL6.5 x86-...
ORA-00600:internalerrorcode,arguments:[kcblasm_1],[103],[],[],[],[],[],[] TueAug1209:20:17CST2014 Errorsinfile/u01/app/oracle/admin/orcl/udump/orcl_ora_29974.trc: ORA-00600:internalerrorcode,arguments...
官网中关于ORA-12560的解释: ORA-12560: TNS:protocol adapter error Cause: A generic protocol adapter error occurred. Action: Check addresses used for proper protocol specification. Before reporting ...
非常详细的oracle rac教程 目录 1、安装环境 2 2、安装前系统配置 2 2.1存储规划 2 2.2 ip地址规划 2 2.3创建用户、组(所有节点) 3 2.4配置各节点环境变量 3 2.5关闭所有节点防火墙 4 ...8.1 ora-12545 57
以前一直用的是oracle11g,创建用户一直没有问题, 今天在oracle12c上创建用户,报错了。如下图: 我很郁闷, 就打开了oracle官方网站找了下, 发现创建用户是有限制的。 2.解决方案 创建用户的时候用户名以c##或者...
Oracle中的【ORA-01536表空间限额不够】的解决方法 错误场景: 今天在SMS短信数据库一个功能运行时候遇到了ORA-01536错误,具体如下: --执行一条插入语句 INSERT INTO SMS_MASTER (CREATE_DATE, TYPE_NAME, SMS_...
10 ADG Linux+Oracle 11g+RAC+12cc+adg国内业界最详细生产系统下实施文档 11 ADG Linuxel6.5 RAC+DG11204bestpratice 12 ADG Linuxel6.5 RAC+DG11204脚本安装 13 ADG Oracle 10g DataGuard实施文档 14 ADG ...
在使用ORACLE的过程中,会出现各种各样的问题,各种各样的错误,其中ORA-12899就是前段时间我在将数据导入到我本地机器上的时候一直出现的问题.不过还好已经解决了这个问题,现在分享一下,解决方案; 出现ORA-12899,是...
RAC概述: Oracle 11gR2 引入了很多新特性, Oracle 11gR2 将自动存储管理 (ASM) 和 Oracle Clusterware 集成在 Oracle Grid Infrastructure 中。Oracle ASM 和 Oracle Database 11gR2 提 供了较以前版本更为增强的...