PROBLEM:
While starting the listener, getting an error like TNS-12542: TNS:address already in use
# lsnrctl start LISTENER_TEST2 LSNRCTL for Solaris: Version 12.1.0.2.0 - Production on 03-SEP-2018 11:06:57 Copyright (c) 1991, 2017, Oracle. All rights reserved. Starting /oracle/app/oracle/product/12.1.0.2/dbhome_1/bin/tnslsnr: please wait... TNSLSNR for Solaris: Version 12.1.0.2.0 - Production System parameter file is /oracle/app/oracle/product/12.1.0.2/dbhome_1/network/admin/listener.ora Log messages written to /oracle/app/oracle/diag/tnslsnr/dbaclass-host/listener_test2/alert/log.xml Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dbaclass-host)(PORT=1524))) Error listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dbaclass-host)(PORT=1524))) TNS-12542: TNS:address already in use ---- >>> TNS-12560: TNS:protocol adapter error TNS-00512: Address already in use Solaris Error: 125: Address already in use Listener failed to start. See the error message(s) above...
SOLUTION:
To find out the issue, Let’s check the content of the listener in listener.ora file.
LISTENER_TEST2 = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = dbaclass-host)(PORT = 1524)) --- >>> (ADDRESS = (PROTOCOL = TCP)(HOST = dbaclass-host)(PORT = 1524)) --- >>> ) ) SID_LIST_LISTENER_TEST2 = (SID_LIST = (SID_DESC = (SID_NAME = BSSLYDEV) (ORACLE_HOME = /oracle/app/oracle/product/12.1.0.2/dbhome_1) ) )
Inside the listener entry, we have 2 ADDRESS entries with same host and same port number(1524) . So starting the listener is failing with conflict.
(ADDRESS = (PROTOCOL = TCP)(HOST = dbaclass-host)(PORT = 1524)) (ADDRESS = (PROTOCOL = TCP)(HOST = dbaclass-host)(PORT = 1524))
To fix the issue, give different ports for both the ADDRESS entries.
the listener will look as below:( 1524 and 1525)
LISTENER_TEST2 = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = dbaclass-host)(PORT = 1524)) (ADDRESS = (PROTOCOL = TCP)(HOST = dbaclass-host)(PORT = 1525)) ) ) SID_LIST_LISTENER_TEST2 = (SID_LIST = (SID_DESC = (SID_NAME = BSSLYDEV) (ORACLE_HOME = /oracle/app/oracle/product/12.1.0.2/dbhome_1) ) )
Now start the listener.
# lsnrctl start LISTENER_TEST2 LSNRCTL for Solaris: Version 12.1.0.2.0 - Production on 03-SEP-2018 11:08:09 Copyright (c) 1991, 2017, Oracle. All rights reserved. Starting /oracle/app/oracle/product/12.1.0.2/dbhome_1/bin/tnslsnr: please wait... TNSLSNR for Solaris: Version 12.1.0.2.0 - Production System parameter file is /oracle/app/oracle/product/12.1.0.2/dbhome_1/network/admin/listener.ora Log messages written to /oracle/app/oracle/diag/tnslsnr/dbaclass-host/listener_test2/alert/log.xml Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dbaclass-host)(PORT=1524))) Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dbaclass-host)(PORT=1525))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dbaclass-host)(PORT=1524))) STATUS of the LISTENER ------------------------ Alias LISTENER_TEST2 Version TNSLSNR for Solaris: Version 12.1.0.2.0 - Production Start Date 03-SEP-2018 11:08:09 Uptime 0 days 0 hr. 0 min. 0 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /oracle/app/oracle/product/12.1.0.2/dbhome_1/network/admin/listener.ora Listener Log File /oracle/app/oracle/diag/tnslsnr/dbaclass-host/listener_test2/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dbaclass-host)(PORT=1524))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dbaclass-host)(PORT=1525))) Services Summary... Service "BSSLYDEV" has 1 instance(s). Instance "BSSLYDEV", status UNKNOWN, has 1 handler(s) for this service... The command completed successfully Listener started successfully.
Listener started successfully and listening on both 1524 and 1525 port. So in simple words, port should be unique for each ADDRESS entry of the listener.