Si no se especifica lo contrario durante la instalación, para una instancia standalone de Oracle sólo se registra un listener. Vamos a ver los pasos necesarios para añadir uno o varios listener a posteriori.
La parte de insfraestructura (interfaces de red, IPs, redes, etc) no está contemplada. El proceso es bastante sencillo y consta de los siguientes pasos:
- Declarar todos los listener en el archivo
$ORACLE_HOME/network/admin/listener.ora
. - Registrar los listener en las bases de datos
- Iniciar los listener
Declarar todos los listener en listener.ora
Básicamente declaramos IP y puerto por el que escuchará cada Listener. El siguiente ejemplo declara dos:
- 192.168.1.100:1521 (LISTENER1)
- 192.168.1.200:1621 (LISTENER2)
LISTENER1 = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521)) ) ) LISTENER2 = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.200)(PORT = 1621)) ) )
Recordad modificar según conveniencia los tnsnames.ora
.
Registrar los nuevos listeners en las bases de datos
Hay varios métodos para registrar los listener en cada base de datos (a través de server parameter file, por ejemplo). El que muestro aquí consiste en modificar directamente el parámetro LOCAL_LISTENER de la instancia especificando todos los listener a través de los que queramos que sea accesible.
SQL> show parameter LISTENER NAME TYPE VALUE ----------------------------------- --------- ----------------------------- local_listener string remote_listener string SQL> alter system set LOCAL_LISTENER="(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP) 2 (HOST=192.168.1.200)(PORT=1621))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.100) 3 (PORT=1521)))" scope=BOTH; SQL> show parameter LISTENER; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ listener_networks string local_listener string (ADDRESS_LIST=(ADDRESS=(PROTOC OL=TCP)(HOST=192.168.1.200)(PO RT=1621))(ADDRESS=(PROTOCOL=TC P)(HOST=192.168.1.100)(PORT=15 21)))
Arranque de listeners
Finalmente se inician los listener a través del comando lsnrctl:
# lsnrctl start LISTENER1 # lsnrctl start LISTENER2 # lsnrctl status