Listener INTERMEDIATE status with "Not All Endpoints Registered" in 11gR2 RAC
During load testing of pre-prod server, I found load balancing is not happening properly. During investigation, When I issue clusterware services status resources command "crsctl stat res -t" it shows the listeners are in INTERMEDIATE status on node 1. The problem is caused by another listener defined statically in listener.ora, using the same port and IP is running from the ORACLE_HOME, started manually causing the default listener starting from GRID_HOME can not register its endpoint.
See, from which node “ Not All Endpoints Registered” message is coming.
$ crsctl stat res -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.dg
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
ora.FRA.dg
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
ora.LISTENER.lsnr
ONLINE INTERMEDIATE racdb1 Not All Endpoints Registered
ONLINE ONLINE racdb2
ora.OCRVD.dg
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
ora.asm
ONLINE ONLINE racdb1 Started
ONLINE ONLINE racdb2 Started
ora.gsd
OFFLINE OFFLINE racdb1
OFFLINE OFFLINE racdb2
ora.net1.network
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
ora.ons
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
ora.registry.acfs
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE racdb2
ora.LISTENER_SCAN2.lsnr
1 ONLINE ONLINE racdb1
ora.LISTENER_SCAN3.lsnr
1 ONLINE ONLINE racdb1
ora.cvu
1 ONLINE ONLINE racdb1
ora.racdb1.vip
1 ONLINE ONLINE racdb1
ora.racdb2.vip
1 ONLINE ONLINE racdb2
ora.PROD.db
1 ONLINE ONLINE racdb1 Open
2 ONLINE ONLINE racdb2 Open
ora.PROD.prdoltp.svc
1 ONLINE ONLINE racdb1
2 ONLINE ONLINE racdb2
ora.oc4j
1 ONLINE ONLINE racdb1
ora.scan1.vip
1 ONLINE ONLINE racdb2
ora.scan2.vip
1 ONLINE ONLINE racdb1
ora.scan3.vip
1 ONLINE ONLINE racdb1
bash-4.2$
Now see listeners are running from which home?
bash-3.2$ ps -ef|grep tns
bash-4.2$ ps -ef|grep tns
oracle 6488180 10813910 0 16:47:56 pts/0 0:00 grep tns
grid 7471174 1 0 Nov 09 - 3:33 /u01/app/11.2.0/grid/bin/tnslsnr LISTENER_SCAN3 -inherit
grid 7602274 1 0 Nov 09 - 3:15 /u01/app/11.2.0/grid/bin/tnslsnr LISTENER_SCAN2 -inherit
grid 10223706 1 0 16:36:04 - 0:00 /u01/app/11.2.0/grid/bin/tnslsnr LISTENER -inherit
oracle 11272200 1 0 Jan 18 pts/0 1:00 /u01/app/oracle/11.2.0/db_home/bin/tnslsnr LISTENER -inherit
bash-4.2$
But, from 11g release 2 onwards in RAC environment all listeners should run from GRID_HOME, listener and listener_scan(n) entry should be added automatically in listener.ora file.
To resolve this issue, simply stop the all listeners and start grid listener only from grid home.
See the below steps:
1.Stop the listener running from ORACLE_HOME (RDBMS)
$<ORACLE_HOME>/bin/lsnrctl stop
2. stop the listener from GRID_HOME
$<GRID_HOME>/bin/srvctl stop listener -n <node name>
3. restart the LISTENER and LISTENER_SCAN1 from GRID_HOME
$<GRID_HOME>/bin/srvctl start listener -n <node name>
4. check crsctl stat res -t output, they both should show ONLINE status now.
See the real time steps:
$ crsctl stat res -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.dg
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
ora.FRA.dg
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
ora.LISTENER.lsnr
ONLINE INTERMEDIATE racdb1 Not All Endpoints R
egistered
ONLINE ONLINE racdb2
ora.OCRVD.dg
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
ora.asm
ONLINE ONLINE racdb1 Started
ONLINE ONLINE racdb2 Started
ora.gsd
OFFLINE OFFLINE racdb1
OFFLINE OFFLINE racdb2
ora.net1.network
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
ora.ons
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
ora.registry.acfs
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE racdb2
ora.LISTENER_SCAN2.lsnr
1 ONLINE ONLINE racdb1
ora.LISTENER_SCAN3.lsnr
1 ONLINE ONLINE racdb1
ora.cvu
1 ONLINE ONLINE racdb1
ora.racdb1.vip
1 ONLINE ONLINE racdb1
ora.racdb2.vip
1 ONLINE ONLINE racdb2
ora.PROD.db
1 ONLINE ONLINE racdb1 Open
2 ONLINE ONLINE racdb2 Open
ora.PROD.prdoltp.svc
1 ONLINE ONLINE racdb1
2 ONLINE ONLINE racdb2
ora.oc4j
1 ONLINE ONLINE racdb1
ora.scan1.vip
1 ONLINE ONLINE racdb2
ora.scan2.vip
1 ONLINE ONLINE racdb1
ora.scan3.vip
1 ONLINE ONLINE racdb1
bash-4.2$
and, the listener status are :
bash-4.2$ ps -ef|grep tns
oracle 6488180 10813910 0 16:47:56 pts/0 0:00 grep tns
grid 7471174 1 0 Nov 09 - 3:33 /u01/app/11.2.0/grid/bin/tnslsnr LISTENER_SCAN3 -inherit
grid 7602274 1 0 Nov 09 - 3:15 /u01/app/11.2.0/grid/bin/tnslsnr LISTENER_SCAN2 -inherit
grid 10223706 1 0 16:36:04 - 0:00 /u01/app/11.2.0/grid/bin/tnslsnr LISTENER -inherit
oracle 11272200 1 0 Jan 18 pts/0 1:00 /u01/app/oracle/11.2.0/db_home/bin/tnslsnr LISTENER -inherit
bash-4.2$
Now stop the listener from RDBMS home:
bash-3.2$ cd $ORACLE_HOME/bin
bash-3.2$
bash-4.2$ lsnrctl stop
LSNRCTL for IBM/AIX RISC System/6000: Version 11.2.0.4.0 - Production on 22-JAN-2016 17:06:11
Copyright (c) 1991, 2013, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))
The command completed successfully
bash-4.2$
bash-4.2$ lsnrctl status
LSNRCTL for IBM/AIX RISC System/6000: Version 11.2.0.4.0 - Production on 22-JAN-2016 17:06:59
Copyright (c) 1991, 2013, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
IBM/AIX RISC System/6000 Error: 2: No such file or directory
bash-4.2$
bash-3.2$ ps -ef |grep tns
oracle 58261656 58720430 0 13:18:32 pts/1 0:00 grep tns
bash-3.2$
bash-3.2$ srvctl stop listener -n racdb1
bash-3.2$ srvctl stop listener -n racdb2
bash-3.2$
bash-4.2$ crsctl stat res -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
…..
ora.LISTENER.lsnr
OFFLINE OFFLINE racdb1
OFFLINE OFFLINE racdb2
….....
bash-3.2$ srvctl status listener
Listener LISTENER is enabled
Listener LISTENER is running on node(s): racdb2
bash-3.2$
bash-3.2$ srvctl start listener -n racdb1
bash-3.2$ srvctl start listener -n racdb2
bash-3.2$
Now see, all listeners are running from grid home only.
bash-4.2$ ps -ef |grep tns
grid 7471174 1 0 Nov 09 - 3:33 /u01/app/11.2.0/grid/bin/tnslsnr LISTENER_SCAN3 -inherit
grid 7602274 1 0 Nov 09 - 3:15 /u01/app/11.2.0/grid/bin/tnslsnr LISTENER_SCAN2 -inherit
grid 9503172 7995474 0 17:08:34 pts/2 0:00 grep tns
bash-4.2$ crsctl stat res -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.dg
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
ora.FRA.dg
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
ora.LISTENER.lsnr
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
ora.OCRVD.dg
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
ora.asm
ONLINE ONLINE racdb1 Started
ONLINE ONLINE racdb2 Started
ora.gsd
OFFLINE OFFLINE racdb1
OFFLINE OFFLINE racdb2
ora.net1.network
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
ora.ons
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
ora.registry.acfs
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE racdb2
ora.LISTENER_SCAN2.lsnr
1 ONLINE ONLINE racdb1
ora.LISTENER_SCAN3.lsnr
1 ONLINE ONLINE racdb1
ora.cvu
1 ONLINE ONLINE racdb1
ora.racdb1.vip
1 ONLINE ONLINE racdb1
ora.racdb2.vip
1 ONLINE ONLINE racdb2
ora.PROD.db
1 ONLINE ONLINE racdb1 Open
2 ONLINE ONLINE racdb2 Open
ora.PROD.prdoltp.svc
1 ONLINE ONLINE racdb1
2 ONLINE ONLINE racdb2
ora.oc4j
1 ONLINE ONLINE racdb1
ora.scan1.vip
1 ONLINE ONLINE racdb2
ora.scan2.vip
1 ONLINE ONLINE racdb1
ora.scan3.vip
1 ONLINE ONLINE racdb1
bash-4.2$
bash-3.2$
bash-3.2$
bash-4.2$ srvctl status listener
Listener LISTENER is enabled
Listener LISTENER is running on node(s): racdb1,racdb2
bash-4.2$
Thanks. Hope this Doc will help you.
During load testing of pre-prod server, I found load balancing is not happening properly. During investigation, When I issue clusterware services status resources command "crsctl stat res -t" it shows the listeners are in INTERMEDIATE status on node 1. The problem is caused by another listener defined statically in listener.ora, using the same port and IP is running from the ORACLE_HOME, started manually causing the default listener starting from GRID_HOME can not register its endpoint.
See, from which node “ Not All Endpoints Registered” message is coming.
$ crsctl stat res -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.dg
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
ora.FRA.dg
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
ora.LISTENER.lsnr
ONLINE INTERMEDIATE racdb1 Not All Endpoints Registered
ONLINE ONLINE racdb2
ora.OCRVD.dg
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
ora.asm
ONLINE ONLINE racdb1 Started
ONLINE ONLINE racdb2 Started
ora.gsd
OFFLINE OFFLINE racdb1
OFFLINE OFFLINE racdb2
ora.net1.network
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
ora.ons
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
ora.registry.acfs
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE racdb2
ora.LISTENER_SCAN2.lsnr
1 ONLINE ONLINE racdb1
ora.LISTENER_SCAN3.lsnr
1 ONLINE ONLINE racdb1
ora.cvu
1 ONLINE ONLINE racdb1
ora.racdb1.vip
1 ONLINE ONLINE racdb1
ora.racdb2.vip
1 ONLINE ONLINE racdb2
ora.PROD.db
1 ONLINE ONLINE racdb1 Open
2 ONLINE ONLINE racdb2 Open
ora.PROD.prdoltp.svc
1 ONLINE ONLINE racdb1
2 ONLINE ONLINE racdb2
ora.oc4j
1 ONLINE ONLINE racdb1
ora.scan1.vip
1 ONLINE ONLINE racdb2
ora.scan2.vip
1 ONLINE ONLINE racdb1
ora.scan3.vip
1 ONLINE ONLINE racdb1
bash-4.2$
Now see listeners are running from which home?
bash-3.2$ ps -ef|grep tns
bash-4.2$ ps -ef|grep tns
oracle 6488180 10813910 0 16:47:56 pts/0 0:00 grep tns
grid 7471174 1 0 Nov 09 - 3:33 /u01/app/11.2.0/grid/bin/tnslsnr LISTENER_SCAN3 -inherit
grid 7602274 1 0 Nov 09 - 3:15 /u01/app/11.2.0/grid/bin/tnslsnr LISTENER_SCAN2 -inherit
grid 10223706 1 0 16:36:04 - 0:00 /u01/app/11.2.0/grid/bin/tnslsnr LISTENER -inherit
oracle 11272200 1 0 Jan 18 pts/0 1:00 /u01/app/oracle/11.2.0/db_home/bin/tnslsnr LISTENER -inherit
bash-4.2$
But, from 11g release 2 onwards in RAC environment all listeners should run from GRID_HOME, listener and listener_scan(n) entry should be added automatically in listener.ora file.
To resolve this issue, simply stop the all listeners and start grid listener only from grid home.
See the below steps:
1.Stop the listener running from ORACLE_HOME (RDBMS)
$<ORACLE_HOME>/bin/lsnrctl stop
2. stop the listener from GRID_HOME
$<GRID_HOME>/bin/srvctl stop listener -n <node name>
3. restart the LISTENER and LISTENER_SCAN1 from GRID_HOME
$<GRID_HOME>/bin/srvctl start listener -n <node name>
4. check crsctl stat res -t output, they both should show ONLINE status now.
See the real time steps:
$ crsctl stat res -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.dg
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
ora.FRA.dg
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
ora.LISTENER.lsnr
ONLINE INTERMEDIATE racdb1 Not All Endpoints R
egistered
ONLINE ONLINE racdb2
ora.OCRVD.dg
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
ora.asm
ONLINE ONLINE racdb1 Started
ONLINE ONLINE racdb2 Started
ora.gsd
OFFLINE OFFLINE racdb1
OFFLINE OFFLINE racdb2
ora.net1.network
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
ora.ons
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
ora.registry.acfs
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE racdb2
ora.LISTENER_SCAN2.lsnr
1 ONLINE ONLINE racdb1
ora.LISTENER_SCAN3.lsnr
1 ONLINE ONLINE racdb1
ora.cvu
1 ONLINE ONLINE racdb1
ora.racdb1.vip
1 ONLINE ONLINE racdb1
ora.racdb2.vip
1 ONLINE ONLINE racdb2
ora.PROD.db
1 ONLINE ONLINE racdb1 Open
2 ONLINE ONLINE racdb2 Open
ora.PROD.prdoltp.svc
1 ONLINE ONLINE racdb1
2 ONLINE ONLINE racdb2
ora.oc4j
1 ONLINE ONLINE racdb1
ora.scan1.vip
1 ONLINE ONLINE racdb2
ora.scan2.vip
1 ONLINE ONLINE racdb1
ora.scan3.vip
1 ONLINE ONLINE racdb1
bash-4.2$
and, the listener status are :
bash-4.2$ ps -ef|grep tns
oracle 6488180 10813910 0 16:47:56 pts/0 0:00 grep tns
grid 7471174 1 0 Nov 09 - 3:33 /u01/app/11.2.0/grid/bin/tnslsnr LISTENER_SCAN3 -inherit
grid 7602274 1 0 Nov 09 - 3:15 /u01/app/11.2.0/grid/bin/tnslsnr LISTENER_SCAN2 -inherit
grid 10223706 1 0 16:36:04 - 0:00 /u01/app/11.2.0/grid/bin/tnslsnr LISTENER -inherit
oracle 11272200 1 0 Jan 18 pts/0 1:00 /u01/app/oracle/11.2.0/db_home/bin/tnslsnr LISTENER -inherit
bash-4.2$
Now stop the listener from RDBMS home:
bash-3.2$ cd $ORACLE_HOME/bin
bash-3.2$
bash-4.2$ lsnrctl stop
LSNRCTL for IBM/AIX RISC System/6000: Version 11.2.0.4.0 - Production on 22-JAN-2016 17:06:11
Copyright (c) 1991, 2013, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))
The command completed successfully
bash-4.2$
bash-4.2$ lsnrctl status
LSNRCTL for IBM/AIX RISC System/6000: Version 11.2.0.4.0 - Production on 22-JAN-2016 17:06:59
Copyright (c) 1991, 2013, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
IBM/AIX RISC System/6000 Error: 2: No such file or directory
bash-4.2$
bash-3.2$ ps -ef |grep tns
oracle 58261656 58720430 0 13:18:32 pts/1 0:00 grep tns
bash-3.2$
bash-3.2$ srvctl stop listener -n racdb1
bash-3.2$ srvctl stop listener -n racdb2
bash-3.2$
bash-4.2$ crsctl stat res -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
…..
ora.LISTENER.lsnr
OFFLINE OFFLINE racdb1
OFFLINE OFFLINE racdb2
….....
bash-3.2$ srvctl status listener
Listener LISTENER is enabled
Listener LISTENER is running on node(s): racdb2
bash-3.2$
bash-3.2$ srvctl start listener -n racdb1
bash-3.2$ srvctl start listener -n racdb2
bash-3.2$
Now see, all listeners are running from grid home only.
bash-4.2$ ps -ef |grep tns
grid 7471174 1 0 Nov 09 - 3:33 /u01/app/11.2.0/grid/bin/tnslsnr LISTENER_SCAN3 -inherit
grid 7602274 1 0 Nov 09 - 3:15 /u01/app/11.2.0/grid/bin/tnslsnr LISTENER_SCAN2 -inherit
grid 9503172 7995474 0 17:08:34 pts/2 0:00 grep tns
bash-4.2$ crsctl stat res -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.dg
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
ora.FRA.dg
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
ora.LISTENER.lsnr
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
ora.OCRVD.dg
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
ora.asm
ONLINE ONLINE racdb1 Started
ONLINE ONLINE racdb2 Started
ora.gsd
OFFLINE OFFLINE racdb1
OFFLINE OFFLINE racdb2
ora.net1.network
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
ora.ons
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
ora.registry.acfs
ONLINE ONLINE racdb1
ONLINE ONLINE racdb2
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE racdb2
ora.LISTENER_SCAN2.lsnr
1 ONLINE ONLINE racdb1
ora.LISTENER_SCAN3.lsnr
1 ONLINE ONLINE racdb1
ora.cvu
1 ONLINE ONLINE racdb1
ora.racdb1.vip
1 ONLINE ONLINE racdb1
ora.racdb2.vip
1 ONLINE ONLINE racdb2
ora.PROD.db
1 ONLINE ONLINE racdb1 Open
2 ONLINE ONLINE racdb2 Open
ora.PROD.prdoltp.svc
1 ONLINE ONLINE racdb1
2 ONLINE ONLINE racdb2
ora.oc4j
1 ONLINE ONLINE racdb1
ora.scan1.vip
1 ONLINE ONLINE racdb2
ora.scan2.vip
1 ONLINE ONLINE racdb1
ora.scan3.vip
1 ONLINE ONLINE racdb1
bash-4.2$
bash-3.2$
bash-3.2$
bash-4.2$ srvctl status listener
Listener LISTENER is enabled
Listener LISTENER is running on node(s): racdb1,racdb2
bash-4.2$
Thanks. Hope this Doc will help you.
Very nice Article :)
ReplyDeleteGaurang realy very nice and knowledgeable Article. Keep it up.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDelete