RAC TNS-1184和1185错误解决

本文详细解析了Oracle RAC环境下服务注册失败的原因,并提供了正确的配置方法来解决TNS-01184和TNS-01185错误。包括通过TNSNAMES.ORA文件正确配置LOCAL_LISTENER和REMOTE_LISTENER参数,以及通过SQL命令调整数据库实例设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



TNS-01185: Registration attempted from aremote node

 

 

第一种情况

APPLIES TO:

Oracle Net Services - Version 10.1.0.2 to 11.2.0.3[Release 10.1 to 11.2]
Information in this document applies to anyplatform.
Checked for relevance on 8-jul-2013.

Oracle Net and RAC from 10.1 onwards.

SYMPTOMS

In a RAC environment the lsnrctl services shows theremote instance in blocked state. The listener.log shows following errors:

TNS-01184: Listener rejectedregistration or update of service handler "string"
TNS-01185: Registration attempted from a remote node

 

CAUSE

TNS-01184: Listener rejected registration or update ofservice handler "string"
Cause: Received registration or update information could not be processedbecause it was invalid, or an internal error occurred.

TNS-01185: Registration attempted from a remote node
Cause: It was determined that the registering instance is not located on thesame node as the listener. It is required that the instance be collocated withthe listener for this type of service registration.

This error indicates that the LOCAL_LISTENER and REMOTE_LISTENER databaseparameters are not configured correctly in the database instances.

SOLUTION

Configure LOCAL_LISTENER and REMOTE_LISTENER correctly.Please ensure that LOCAL_LISTENER parameter specifies only local listeners anduse REMOTE_LISTENER parameter to specify remote listeners in your databaseinstance.

1. Example TNSNAMES.ORA entries for two node cluster, Node1 & Node2
Two Local listener entries, followed by remote listener entry

LISTENER_LOCAL1=
(ADDRESS = (PROTOCOL = TCP)(HOST = Node1-vip)(PORT = 1521))

LISTENER_LOCAL2 =
(ADDRESS = (PROTOCOL = TCP)(HOST = Node2-vip)(PORT = 1521))


LISTENERS_REMOTE =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = Node1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = Node2-vip)(PORT = 1521))
)


2. Then in sqlplus

sqlplus /nolog
SQL> connect / as sysdba
SQL> alter system set LOCAL_LISTENER='LISTENER_LOCAL1' scope=bothsid='Instance1';
SQL> alter system set LOCAL_LISTENER='LISTENER_LOCAL2' scope=bothsid='Instance2';
SQL> alter system set REMOTE_LISTENER='LISTENERS_REMOTE' scope=both;

 

——————————————

第二种情况

SYMPTOMS


Following errors are seen in the listener.log file at an interval of one minuteapart:

01-APR-2010 11:40:29 * service_register *ses * 1184
TNS-01184: Listener rejected registration or update of service handler"DEDICATED"
TNS-01185: Registration attempted from a remote node
01-APR-2010 11:40:29 * service_died * ses * 12537


Checking the listener status shows that no services are blocked and that allservices are registered correctly and in status READY:

lsnrctl status list_ses

LSNRCTL for HPUX: Version 10.2.0.4.0 - Production on 31-MAR-2010 18:05:26

Copyright (c) 1991, 2007, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.122.185)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias list_ses
Version TNSLSNR for HPUX: Version 10.2.0.4.0 - Production
Start Date 31-MAR-2010 18:02:11
Uptime 0 days 0 hr. 3 min. 15 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /opt/oracle/ses/Ora102/network/admin/listener.ora
Listener Log File /opt/oracle/ses/Ora102/network/log/list_ses.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.16.122.185)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.16.121.185)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=extproc_ses)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for thisservice...
Service "ses" has 2 instance(s).
Instance "ses", status UNKNOWN, has 1 handler(s) for this service...
Instance "ses", status READY, has 1 handler(s) for this service...
Service "sesXDB" has 1 instance(s).
Instance "ses", status READY, has 1 handler(s) for this service...
Service "ses_XPT" has 1 instance(s).
Instance "ses", status READY, has 1 handler(s) for this service...
The command completed successfully


A level 16 listener trace will reveal the following message AFTER the foreignregistration packet arrives:

2013-03-27 16:47:56.748963 : nsglgrDoRegister:error - locality check failed forbequeath handler

 

CAUSE


The instance's setting for LOCAL_LISTENER must be pointed to an address that islocal to the instance. It cannot be set to point to a listener address that isremote.

The TNS-01185 error verifies that the registeringinstance is not located on the same node as the listener and hence theregistration of the service with this listener is failing.

SOLUTION

Looks like these failed registrations are coming fromanother instance running on a remote host.
Please check (and correct) the LOCAL_LISTENER initialization parameter for anyremote instances so that they are not configured to point to a LOCAL_LISTENERsetting that corresponds to a remote address. Please ensure that LOCAL_LISTENERparameter specifies only local listeners and use the REMOTE_LISTENER parameterto specify remote listeners in your database instances.







此文转自:http://929044991.blog.51cto.com/1758347/1296926



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值