RAC TNS-1184和1185错误解决

来源:互联网 发布:淘宝网玩具战神金刚 编辑:程序博客网 时间:2024/06/03 15:44

第一种情况

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 any platform.
Checked for relevance on 8-jul-2013.

Oracle Net and RAC from 10.1 onwards.


SYMPTOMS

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

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



CAUSE

TNS-01184: Listener rejected registration or update of service handler "string"
Cause: Received registration or update information could not be processed because 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 the same node as the listener. It is required that the instance be collocated with the listener for this type of service registration.

This error indicates that the LOCAL_LISTENER and REMOTE_LISTENER database parameters 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 and use REMOTE_LISTENER parameter to specify remote listeners in your database instance.

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=both sid='Instance1';
SQL> alter system set LOCAL_LISTENER='LISTENER_LOCAL2' scope=both sid='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 minute apart:

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 all services 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 this service...
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 foreign registration packet arrives:

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



CAUSE


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

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


SOLUTION

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



本文出自 “无双城” 博客,请务必保留此出处http://929044991.blog.51cto.com/1758347/1296926

原创粉丝点击