martes, 26 de febrero de 2008

El listener

TNS Listener es un proceso servidor que provee la conectividad de red con la base de datos Oracle. El listener está configurado para escuchar la conexión en un puerto específico en el servidor de base de datos. Cuando una se pide una conexión a la base de datos, el listener devuelve la información relativa a la conexión. La información de una conexión para una instancia de una base de datos provee el nombre de usuario, la contraseña y el SID de la base de datos. Si estos datos no son correctos se devolverá un mensaje de error.

  • Por defecto el puerto del listener es el 1521
  • El listener no limita el número de conexiones a la base de datos

Toda la información del listener la contiene un archivo denominado listener.ora ( $ORACLE_HOME/network/admin. )

El comando para gestionar el listener es lsnrctl. Mediante este comando podemos:

  • Parar el listener.
  • Ver el estado del listener.
  • Arrancar el listener.
  • Rearrancar el listener.

  • SEGURIDAD LISTENER ORACLE 10G (securing the listener)
  • El principal paso para realizar la seguridad en el listener es ponerle una contraseña password.

    El primer método para poner una contraseña al listener es editando el fichero listener.ora y escribiendo la siguiente línea:

    PASSWORDS_LISTENER = orapass

    Cuando guardemos el fichero con los cambios realizamos un reload del listener

    lsnrctl> reload

    Nota: El comando para entrar en el listener es lsnrctl ( $ORACLE_HOME/bin )

    El segundo método para poder cambiar la contraseña al listener es el siguiente:

    lsnrctl> change_password

    Este comando te pedirá la clave antigua y la nueva clave.
    Si es la primera vez que ejecutas este comando la contraseña antigua ( old password ) habrá que dejarla en blanco.

    El comando SET y SAVE CONFIG permite guardar esos cambios en el listener porque ahora el listener está gobernado por un password.

    lsnrctl > set password

    lsnrctl > save config

    La información antigua se guardará enlistener.bck y listener.ora se actualizará con los nuevos datos.

    Ejemplo de configuración del listener.ora

    LISTENER9 =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 193.168.4.220)(PORT = 2484))
    )
    )
    )
    SID_LIST_LISTENER9 =
    (SID_LIST =
    (SID_DESC =
    (GLOBAL_DBNAME = orasite)
    (ORACLE_HOME = /oracle9/product/9.2.0)
    (SID_NAME = orasite)
    )
    )

    Parámetros del archivo:

    HOST: Dirección ip del servidor de base de datos

    PORT: Puerto de escucha de la base de datos ( por defecto suele ser el 1521 )

    CLOBAL_DB_NAME: Nombre de la base de datos

    ORACLE_HOME: Directorio de instalación de ORACLE ( ORACLE_HOME )

    SID_NAME: SID de la base de datos ( muchas veces coincide con el GLOBAL_DB_NAME )

    Este archivo incluye:

    • Direcciones de protocolo en las que acepta solicitudes de conexión.
    • Servicios de base de datos
    • Parámetros de control utilizados por el listener.

    13 comentarios:

    Rubén Coloma dijo...

    Excelente Post, me ha servido de mucho para poder configurar el Listener de Oracle para un proyecto de la Universidad. Gracias.

    Anónimo dijo...

    Buen Post, si hay aplicaciones de terceros que se conectan a la base de datos Oracle, y el listener tiene contraseña, estas aplicaciones podrán seguir operando, es necesario configurar los parametros del listener en las aplicaciones??

    Saludos.

    Anónimo dijo...

    Como parar y reiniciar el listener desde el Enterprise Manager ? estoy usando win 7 64 bits y Oracle 11gR1.....me pide usuario y clave, que usuario le escribo?

    Anónimo dijo...

    Una pregunta: si se reincia el Listener (apago, borro el fichero de .log y lo arranco de nuevo):
    ¿las sesiones abiertas contra la base de datos se caen?

    Es decir, puedo reinciar el Listener en un momento dado sin perjudicar a los usuarios ya conectados a la BD ?

    Gracias

    Anónimo dijo...

    Muy útil la información, clara y concisa.

    saludos

    j. isaac dijo...

    Que buen blog tienes muchas felicidades, me ha aclarado muchas dudas, saludos

    Edwin dijo...

    Buen información sobre el listener, de forma sencilla haz aclarado muchas dudas que tenía sobre el tema.

    Gracias

    Edwin dijo...

    Buen información sobre el listener, de forma sencilla haz aclarado muchas dudas que tenía sobre el tema.

    Gracias

    Victor dijo...

    Hola sabes aparte del puerto 1521, podemos utilizar para hacer debug? gracias.

    Victor dijo...

    Hola sabes aparte del puerto 1521, podemos utilizar para hacer debug? gracias.

    Victor dijo...

    Hola sabes aparte del puerto 1521, podemos utilizar para hacer debug? gracias.

    Victor dijo...

    Hola sabes aparte del puerto 1521, podemos utilizar para hacer debug? gracias.

    Victor dijo...

    Hola sabes aparte del puerto 1521, podemos utilizar para hacer debug? gracias.