Añadir un nuevo listener en Oracle

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
listener Oracle

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *