I was working on configuring multiple local listeners and having difficulties setting local_listener using full address list.
How would you set up local_listeners?
Demo:
There are 4 listeners, 1-4.
$ lsnrctl status listener1 LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 17-AUG-2016 21:34:31 Copyright (c) 1991, 2013, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1551))) STATUS of the LISTENER ------------------------ Alias listener1 Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production Start Date 17-AUG-2016 21:34:08 Uptime 0 days 0 hr. 0 min. 22 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/11.2.0.4/db_1/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/arrow/listener1/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1551))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.11)(PORT=1551))) Services Summary... Service "leo" has 1 instance(s). Instance "leo", status UNKNOWN, has 1 handler(s) for this service... The command completed successfully $ lsnrctl status listener2 LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 17-AUG-2016 21:34:33 Copyright (c) 1991, 2013, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1552))) STATUS of the LISTENER ------------------------ Alias listener2 Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production Start Date 17-AUG-2016 21:34:10 Uptime 0 days 0 hr. 0 min. 23 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/11.2.0.4/db_1/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/arrow/listener2/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1552))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.11)(PORT=1552))) Services Summary... Service "leo" has 1 instance(s). Instance "leo", status UNKNOWN, has 1 handler(s) for this service... The command completed successfully $ lsnrctl status listener3 LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 17-AUG-2016 21:34:35 Copyright (c) 1991, 2013, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1553))) STATUS of the LISTENER ------------------------ Alias listener3 Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production Start Date 17-AUG-2016 21:34:13 Uptime 0 days 0 hr. 0 min. 21 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/11.2.0.4/db_1/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/arrow/listener3/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1553))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.11)(PORT=1553))) Services Summary... Service "leo" has 1 instance(s). Instance "leo", status UNKNOWN, has 1 handler(s) for this service... The command completed successfully $ lsnrctl status listener4 LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 17-AUG-2016 21:34:36 Copyright (c) 1991, 2013, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1554))) STATUS of the LISTENER ------------------------ Alias listener4 Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production Start Date 17-AUG-2016 21:34:15 Uptime 0 days 0 hr. 0 min. 21 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/11.2.0.4/db_1/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/arrow/listener4/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1554))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.11)(PORT=1554))) Services Summary... Service "leo" has 1 instance(s). Instance "leo", status UNKNOWN, has 1 handler(s) for this service... The command completed successfully
Modify database LOCAL_LISTENER parameter.
alter system set LOCAL_LISTENER="(ADDRESS_LIST= )"; (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.11)(PORT=1551)) (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.11)(PORT=1552)) (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.11)(PORT=1553)) (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.11)(PORT=1554)) 6 )"; alter system set LOCAL_LISTENER="(ADDRESS_LIST= * ERROR at line 1: ORA-00972: identifier is too long alter system set LOCAL_LISTENER="(ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.11)(PORT=1551)) (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.11)(PORT=1552)) (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.11)(PORT=1553)) 5 )"; alter system set LOCAL_LISTENER="(ADDRESS_LIST= * ERROR at line 1: ORA-00972: identifier is too long alter system set LOCAL_LISTENER="(ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.11)(PORT=1551)) (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.11)(PORT=1552)) 4 )"; System altered. ARROW:(SYS@leo):PRIMARY> show parameter local_listener NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ local_listener string (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=1 92.168.56.11)(PORT=1551)) (ADDRESS=(PROTOCOL=TCP)(HOST=1 92.168.56.11)(PORT=1552)) ) ARROW:(SYS@leo):PRIMARY>
Using single quote works.
ARROW:(SYS@leo):PRIMARY> alter system set LOCAL_LISTENER='(ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.11)(PORT=1551)) (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.11)(PORT=1552)) (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.11)(PORT=1553)) (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.11)(PORT=1554)))' 6 ; System altered. ARROW:(SYS@leo):PRIMARY> show parameter local_listener NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ local_listener string (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=1 92.168.56.11)(PORT=1551)) (ADDRESS=(PROTOCOL=TCP)(HOST=1 92.168.56.11)(PORT=1552)) (ADDRESS=(PROTOCOL=TCP)(HOST=1 92.168.56.11)(PORT=1553)) (ADDRESS=(PROTOCOL=TCP)(HOST=1 92.168.56.11)(PORT=1554))) ARROW:(SYS@leo):PRIMARY>
Interesting.
$ oerr ora 972 00972, 00000, "identifier is too long" // *Cause: An identifier with more than 30 characters was specified. // *Action: Specify at most 30 characters.
Configure tnsnames for listeners
$ cat tnsnames.ora leo = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = arrow.localdomain)(PORT = 1531)) ) (CONNECT_DATA = (SID = leo) ) ) LISTENER_1551_1554 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.11)(PORT= 1551)) (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.11)(PORT= 1552)) (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.11)(PORT= 1553)) (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.11)(PORT= 1554)) ) ) $ tnsping LISTENER_1551_1554 TNS Ping Utility for Linux: Version 11.2.0.4.0 - Production on 17-AUG-2016 21:48:43 Copyright (c) 1997, 2013, Oracle. All rights reserved. Used parameter files: Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.11)(PORT= 1551)) (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.11)(PORT= 1552)) (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.11)(PORT= 1553)) (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.11)(PORT= 1554)))) OK (0 msec)
Modify database LOCAL_LISTENER parameter using tnsnames and register listener.
ARROW:(SYS@leo):PRIMARY> alter system set LOCAL_LISTENER="LISTENER_1551_1554"; System altered. ARROW:(SYS@leo):PRIMARY> alter system register; System altered. ARROW:(SYS@leo):PRIMARY> show parameter local_listener NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ local_listener string LISTENER_1551_1554 ARROW:(SYS@leo):PRIMARY>
Service is now ready.
$ lsnrctl status listener1 LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 17-AUG-2016 21:51:26 Copyright (c) 1991, 2013, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1551))) STATUS of the LISTENER ------------------------ Alias listener1 Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production Start Date 17-AUG-2016 21:34:08 Uptime 0 days 0 hr. 17 min. 17 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/11.2.0.4/db_1/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/arrow/listener1/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1551))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.11)(PORT=1551))) Services Summary... Service "leo" has 1 instance(s). Instance "leo", status UNKNOWN, has 1 handler(s) for this service... Service "leo_a" has 1 instance(s). Instance "leo01", status READY, has 1 handler(s) for this service... The command completed successfully $ lsnrctl status listener2 LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 17-AUG-2016 21:51:29 Copyright (c) 1991, 2013, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1552))) STATUS of the LISTENER ------------------------ Alias listener2 Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production Start Date 17-AUG-2016 21:34:10 Uptime 0 days 0 hr. 17 min. 19 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/11.2.0.4/db_1/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/arrow/listener2/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1552))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.11)(PORT=1552))) Services Summary... Service "leo" has 1 instance(s). Instance "leo", status UNKNOWN, has 1 handler(s) for this service... Service "leo_a" has 1 instance(s). Instance "leo01", status READY, has 1 handler(s) for this service... The command completed successfully $ lsnrctl status listener3 LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 17-AUG-2016 21:51:31 Copyright (c) 1991, 2013, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1553))) STATUS of the LISTENER ------------------------ Alias listener3 Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production Start Date 17-AUG-2016 21:34:13 Uptime 0 days 0 hr. 17 min. 17 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/11.2.0.4/db_1/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/arrow/listener3/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1553))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.11)(PORT=1553))) Services Summary... Service "leo" has 1 instance(s). Instance "leo", status UNKNOWN, has 1 handler(s) for this service... Service "leo_a" has 1 instance(s). Instance "leo01", status READY, has 1 handler(s) for this service... The command completed successfully $ lsnrctl status listener4 LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 17-AUG-2016 21:51:33 Copyright (c) 1991, 2013, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1554))) STATUS of the LISTENER ------------------------ Alias listener4 Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production Start Date 17-AUG-2016 21:34:15 Uptime 0 days 0 hr. 17 min. 17 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/11.2.0.4/db_1/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/arrow/listener4/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1554))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.11)(PORT=1554))) Services Summary... Service "leo" has 1 instance(s). Instance "leo", status UNKNOWN, has 1 handler(s) for this service... Service "leo_a" has 1 instance(s). Instance "leo01", status READY, has 1 handler(s) for this service... The command completed successfully
