问题示例:
在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
分享到:
相关推荐
在使用Oracle12cRAC(Real Application Clusters)数据库的过程中,可能会遇到客户端连接时出现ora-12520或ora-12516错误的问题。这两种错误代码分别表示“无法为服务找到可用实例”和“TNS:没有监听器”,通常与...
错误描述:oracle远程连接服务器出现 ORA-12170 TNS:连接超时 错误检查:有很多是oracle自身安装的问题,但是我这里服务器配置正常,监听正常,服务正常,远程可以ping通服务器。 这里主要是防火墙问题,解决办法: ...
然而,在使用 Oracle RAC 时,可能会遇到一些故障,例如 ORA-03113 错误。该错误通常是由于控制文件和数据文件头不匹配所引起的。在本文中,我们将详细介绍 ORA-03113 故障的处理步骤。 一、故障现象描述 在某个 ...
用oracle数据库新建连接时遇到ora-12505,此问题解决后又出现ora-12519错误,郁闷的半天,经过一番折腾问题解决,下面小编把我的两种解决方案分享给大家,仅供参考。 解决方案一: 今天工作时在新建连接的时候遇到...
然而,在修改Oracle RAC环境的字符集时,可能会遇到各种问题,其中最常见的错误之一是ORA-00205。这个错误通常表示启动参数文件(SPFILE)中的系统ID(SID)与实例ID不匹配,或者SPFILE本身存在问题。下面我们将详细...
Oracle 的 Archivelog 机制是为了确保数据库的可恢复性,在数据库中, archivelog 文件是记录数据库的所有变化的日志文件,当 archivelog 文件达到一定的大小时, Oracle 就会抛出 ORA-00257 错误,这时我们需要...
这个安装参考手册是为那些希望部署Oracle 11g RAC环境的IT专业人员准备的。下面将详细介绍RAC的原理、安装步骤及相关知识点。 1. **RAC原理**: - **集群概念**:RAC是一种集群数据库技术,将多个服务器节点连接在...
Oracle 10g Real Application Clusters (RAC) 和 Automatic Storage Management (ASM) 是 Oracle 数据库在高可用性和性能优化方面的重要组件。本指南将详细阐述如何在 Sun Solaris 平台上搭建 10.1.0.4 版本的 RAC ...
本次故障出现在一个运行Oracle 12.1.0.2.0版本的RAC环境中,具体表现为告警日志频繁出现ORA-01565: Unable To open Spfile错误。这一问题对数据库的稳定运行产生了负面影响,需要进行详细的故障分析并找出有效的解决...
Oracle 11g RAC(Real Application Clusters)是一种高可用性和可伸缩性的数据库解决方案,它允许多个实例在共享存储上同时访问一个数据库。本文将深入解析Oracle 11g RAC中的集群应用层命令,特别是用于维护和监控...
Oracle 10g RAC(Real Application Clusters)是Oracle数据库的一个集群技术,允许用户创建一个高可用性和可扩展性的数据库集群环境。该技术能够支持关键任务的业务应用运行在多个服务器上,以提供负载均衡和故障...
### ORACLE 10G RAC参考手册知识点详解 #### 一、Oracle RAC规划 **1.1 RAC的基本组成** RAC (Real Application Clusters) 是 Oracle 提供的一种多实例集群技术,用于实现高性能、高可用性及可伸缩性的数据库解决...
ORA-00001: 违反唯一约束条件 (.) ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 ORA-00019: 超出最大会话许可数 ORA-00020: 超出最大进程数 () ORA-00021: 会话附属于其它某些进程;无法转换会话 ...
在Oracle10g RAC(Real Application Clusters)与ASM(Automatic Storage Management)环境中,日常管理操作至关重要,确保了数据库的高效运行与集群的稳定性。本文将深入解析几个关键的管理命令,涵盖网络配置、...
- Oracle博客:[Adding Node to 10g R2 RAC](http://blogs.oracle.com/AlejandroVargas/gems/RAC10gR2AddNode.pdf) 2. **启动Grid Control黑屏操作**:这一步是为了减少对现有服务的影响。 3. **禁用数据库服务器...
ORACLE 10G RAC for AIX 是一个在IBM AIX操作系统上部署的Oracle Real Application Clusters (RAC)解决方案。RAC是一种高可用性技术,允许多个数据库实例共享同一物理数据库,从而提供故障切换和负载均衡的能力。...
最近在工作中遇到了一个问题,错误是Oracle dbca时报错:ORA-12547: TNS:lost contact,通过查找相关的资料终于找到了解决的方法,下面分享给大家,话不多说了,来一起看看详细的介绍吧。 环境: OS:RHEL6.5 x86-...
ORACLE 10g RAC 负载均衡配置 负载均衡是指连接的负载均衡。在 RAC 中,负载均衡分为两种,一种是基于客户端连接的,另外一种是基于服务器端的。下面将详细介绍基于客户端连接的负载均衡配置。 一、客户端负载均衡...
通过以上步骤,我们可以成功地在Oracle Enterprise Linux 6.5系统上部署Oracle 11g RAC+DG环境。这一部署过程涉及到系统的环境配置、软件安装以及必要的故障排查等多个方面,旨在为用户提供一个稳定、高性能的数据库...