Hola a todos, hoy queríamos compartir una forma muy sencilla para añadir un nuevo listener a una base de datos,
En este caso ya tenemos un listener creado y funcionando, y vamos a añadir para poder repartir la carga, ya que en casos en los que se abren muchas conexiones podemos llegar a tener problemas si lo colapsamos
En caso de que dos listener no sean suficientes por la alta carga de trabajo, podemos añadir 2, 3, o los que hagan falta
Los pasos que vamos a seguir son:
- Declarar el listener en el fichero listener.ora
- Registrar el nuevo listener en la base de datos ,
- Arrancar los listener
En primer lugar vamos a acceder al fichero de configuración del listener (listener.ora), este fichero suele estar alojado por defecto en la siguiente
$ORACLE_HOME/network/admin/listener.ora
Pasos para añadir un nuevo listener
Declarar el listener en el fichero listener.ora
En este caso os vamos a mostrar como es un fichero estándar:
LISTENER1 = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521)) ) )
Lo que vamos a hacer es copiarlo y pegarlo mas abajo modificando los parámetros de nombre, puerto y host
Nos quedaría de la siguiente forma:
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)) ) )
Registrar los nuevos listeners en las bases de datos
Hay varias formas de registrar los listener en cada base de datos, la que os vamos a mostrar aquí consiste en modificar directamente el parámetro LOCAL_LISTENER de la instancia.
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 los nuevos Listener en Oracle
Finalmente se inician los listener a través del comando lsnrctl
# lsnrctl start LISTENER1 # lsnrctl start LISTENER2 # lsnrctl status

Esperamos que la entrada os sea de utilidad y si teméis algún comentario o mejora sobre el script comentadnos. Si preferís que lo implantemos en tu entorno, no dudéis en poneros en contacto con nosotros sin compromiso. Para una entrada posterior os contaremos como se puede hacer con informes statspacks si no tenéis la opción de generar AWR.
Un saludo y muchas gracias.
¿Aún no conoces Query Performance? Descubre cómo puede ayudarte en tu entorno Oracle. Más información en su página de LinkedIn.
Sígue a GPS en LinkedIn