Creare un Listener Dinamico
1) Modificare il file tnsnames.ora e aggiungere un nuovo listener
LISTENER2 =(ADDRESS = (PROTOCOL = TCP)(HOST =test.com)(PORT = 1527))
LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST =test.com)(PORT = 1521))
ORCL=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=test.com)
(PORT=1521))
(CONNECT_DATA=
(SERVER=dedicated)
(SERVICE_NAME=orcl.com))
)
2) Modificare il file listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/18/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = test.com)(PORT = 1527))
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = test.com)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
LOG_DIRECTORY_LISTENER=/u01/app/oracle/product/18/db_1/network/log
3) Modificare il parametro di sistema:
SQL> alter system set local_listener="LISTENER_ORCL ,LISTENER2";
SQL> show parameter local_listener
NAME TYPE VALUE
------------------------------------ ----------- -----------------------------------------
local_listener string LISTENER_ORCL ,LISTENER2
Collegarsi al listener e avviarlo
[oracle@test admin]$ lsnrctl
LSNRCTL> start listener2
LSNRCTL> status listener2
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test.com)(PORT=1527)))
STATUS of the LISTENER
------------------------
Alias listener2
Version TNSLSNR for Linux: Version 18.0.0.0.0 - Production
Start Date 04-SEP-2020 15:34:01
Uptime 0 days 0 hr. 47 min. 18 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/18/db_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/test/listener2/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=test.com)(PORT=1527)))
The listener supports no services
The command completed successfully
Se il listerner non dovesse riconoscere i servizi allora usare la stringa di connesione completa invece del data entry.
SQL> alter system set local_listener="(ADDRESS=(PROTOCOL=TCP)(HOST=test.com)(PORT=1521)),(ADDRESS=(PROTOCOL=TCP)(HOST=test.com)(PORT=1527))";
SQL> show parameter local_listener
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
local_listener string (ADDRESS=(PROTOCOL=TCP)(HOST=test.com)(PORT=1521)), (ADDRESS= (PROTOCOL=TCP)(HOST=test.com)( PORT=1527))
- Verifica che i serivizi sono agganciati al listener.
LSNRCTL> status listener2
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test.com)(PORT=1527)))
STATUS of the LISTENER
------------------------
Alias listener2
Version TNSLSNR for Linux: Version 18.0.0.0.0 - Production
Start Date 04-SEP-2020 16:30:14
Uptime 0 days 0 hr. 8 min. 56 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/18/db_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/test/listener2/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=test.com)(PORT=1527)))
Services Summary...
Service "64a52f53a7683286e053cda9e80aed76.com" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Service "ae3ed9ec84541fb8e053c58e670ab441.com" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Service "ae66f6c2b4ea71d2e053c68e670afc09.com" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orcl.com" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB.com" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclpdb.com" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Service "pdbtest.com" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully
- Verifica di connessone col metodo "Easy Connect"
[oracle@test admin]$ sqlplus / as sysdba
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL> conn system/xxxxxxx@test.com:1527/orcl.com
Connected.
SQL> conn system/xxxxxxx@test.com:1521/orcl.com
Connected.
SQL> conn system/so12mee0@test.com:1527/orclpdb.com
Connected.
SQL> show con_name
CON_NAME
------------------------------
ORCLPDB
E' possibile creare il lister usando il tool NETCA
Cliccando su Listerner configuration viene modificato il file listener.ora.
Cliccare su Finish.
Il file listener.ora contiene la seguente stringa di connessione:
LISTENER_3 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = test.com)(PORT = 1522))
)
)
Partendo da questa si può definire il listener statico e dinamico.