Comunicaciones en Oracle, Oracle NET Listener.

http://www.tuinformaticafacil.com/oracle-11g/comunicaciones-en-oracle-oracle-net-listener

El Oracle Net listener más conocido como listener, es el servicio que corre en el servidor donde estan las bases de datos Oracley que se encarga de manejar todas la peticiones remotas de entrada a la base de datos.

Configuración y puesta en marcha del listener en un servidor de bases de datos Oracle.

 

Nos conectamos al servidor con el usuario oracle.

 

1 – Variable TNS_ADMIN.

 

Exportamos la variable de entorno a el path $ORACLE_HOME/network/admin.

 

 

$export TNS_NAMES=$ORACLE_HOME/network/admin

 

2 – El fichero de configuración listener.ora.

 

En el path $ORACLE_HOME/network/admin encontraremos el archivo listerner.ora, antes de editarlo con el vi para modificarlo vamos a analizar que datos necesitamos para crear una nueva entrada en el listener.ora, veamos una entrada ejemplo:

 

 

LSN_PRUEBA01 =
    (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = lce4s002v)(PORT = 1521))
    )

SID_LIST_LSN_PRUEBA01 =
    (SID_LIST =
       (SID_DESC =
           (ORACLE_HOME = /u01/app/oracle/product/10.2.0.1)
           (SID_NAME = PRUEBA01)
       )
    )

 

 

Puntos clave de una entrada en el listener.ora

 

LSN_PRUEBA01, es el nombre o alias del servicio, debe de ser único y por claridad usaremos LSN (abreviatura de listener) y el nombre de la instancia/base de datos, no obstante podéis utlizar el nombre que queráis.

 

PROTOCOL, Oracle soporta diferentes protocolos, vamos a crear una entrada para TCP/IP.

 

HOST, nombre del servidor o maquina, el nombre del servidor tiene que estar presente en el /etc/hosts, también se puede usar la IP del servidor pero no lo recomiendo pues si la IP cambiara tendríais que modificar cada entrada.

 

PORT, puerto TCP, podemos utilizar cualquier puerto TCP que este libre pero es recomendable empezar por el 1521 ya que este es el  puerto por defecto que recomienda Oracle.


ORACLE_HOME, el path del ORACLE_HOME en el que estemos trabajando.

 

SID_NAME, el nombre de la instancia de la base de datos para la que estemos preparando la condifuración.

 

Podemos utilizar un editor de textos (recomiendo PSPAD para Windows y vi para linux Unix) para realizar las modificaciones necesarias. Una vez tenemos preparada nuestra entrada la añadiremos al listener.ora.

 

Editamos el listener.ora y añadimos nuestra entrada al final y salimos guardando. 

 

3 – Arranque del lisnener.

 

El comando para arrancar el listener es lsnrctl, si lo ejecutamos trabajaremos en modo interactivo.

 

Ejemplo:

 

$ lsnrctl

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 03-NOV-2010 10:15:19

Copyright (c) 1991, 2007, Oracle.  All rights reserved.

Welcome to LSNRCTL, type "help" for information.

LSNRCTL> help
The following operations are available
An asterisk (*) denotes a modifier or extended command:

start               stop                status
services            version             reload
save_config         trace               spawn
change_password     quit                exit
set*                show*

 

Para arrancar un listener en concreto utilizaremos el comando lsnrctl seguido de start y del alias, en nuestro ejemplo LSN_PRUEBA01.

 

Ejemplo:

 

$ lsnrctl start LSN_PRUEBA01
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 03-NOV-2010 10:37:44

Copyright (c) 1991, 2007, Oracle Corporation.  All rights reserved.

Starting /u01/app/product/10.2.0.1/bin/tnslsnr: please wait...

TNSLSNR for Solaris: Version 10.2.0.1.0 - Production
System parameter file is /u01/app/product/10.2.0.1/network/admin/listener.ora
Log messages written to /u01/app/product/10.2.0.1/network/log/lsn_qa.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=PRUEBA01)(PORT=1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=prueba001)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     PRUEBA01
Version                   TNSLSNR for Solaris: Version 10.2.0.1.0 - Production
Start Date                03-NOV-2010 10:37:44
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  OFF
SNMP                      OFF
Listener Parameter File   /u01/app/product/10.2.0.1/network/admin/listener.ora
Listener Log File         /u01/app/product/10.2.0.1/network/log/lsn_qa.log
Listening Endpoints Summary...
 (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=prueba001)(PORT=1521)))
Services Summary...
Service "PRUEBA01" has 1 instance(s).
 Instance "PRUEBA01", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

 

4 – Parar un listener.

 

Para parar un listener usaremos el comando lsnrctl deguido de  stop y por último el alias.

 

Ejemplo:

 

$ lsnrctl stop LSN_PRUEBA01
LSNRCTL for Solaris: Version 10.2.0.1.0 - Production on 03-NOV-2010 10:37:27

Copyright (c) 1991, 2007, Oracle Corporation.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=prueba001)(PORT=1521)))
The command completed successfully

 

 5 – Para ver el estado de un listener.

 

$ lsnrctl status LSN_PRUEBA01

 

El resultado es el siguiente

 

$ lsnrctl status LSN_PRUEBA01

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 03-NOV-2010 10:39:26

Copyright (c) 1991, 2007, Oracle Corporation.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=prueba001)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LSN_PRUEBA01
Version                   TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date                03-NOV-2010 10:39:44
Uptime                    0 days 0 hr. 0 min. 41 sec
Trace Level               off
Security                  OFF
SNMP                      OFF
Listener Parameter File   /u01/app/product/10.2.0.1/network/admin/listener.ora
Listener Log File         /u01/app/product/10.2.0.1/network/log/lsn_qa.log
Listening Endpoints Summary...
 (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=prueba001)(PORT=1521)))
Services Summary...
Service "PRUEBA01" has 1 instance(s).
 Instance "PRUEBA01", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

 

Artículo relacionado – Comunaciones en  Oracle conexiones cliente el tnsnames.ora