viernes, 15 de julio de 2011

Perfiles del SQLNET.ORA


Alguna vez se han preguntado qué utilidad le podemos dar al archivo SQLNET.ORA?

Este archivo por defecto se crea en la ruta %ORACLE_HOME%\network\admin, la configuración que realicemos en este archivo nos ayudará a:

Controlar el acceso a la base de datos por medio del protocolo de red, métodos de autenticación, definir los tiempos de comprobación de actividad de las sesiones de los clientes.

Estas son unas cuantas de las utilidades de SQLNET.ORA, y continuación le explicaré unas muy útiles.

SQLNET.EXPIRE_TIME

Este parámetro esta medido en minutos y es usado para especificar el intervalo de tiempo de envió de test a la conexiones clientes/servidor para comprobar si están activas. Este es un método que garantiza que las conexiones a la base de datos no se dejen abiertas indefinidamente, esto es una manera. Este parámetro por defecto esta seteado con cero pero es recomendable que se configure con valor superior a cero (Yo lo tengo configurado con 10).

Este parámetro podría solucionarles problemas de desconexión de los clientes a la base de datos para los problemas de redes intermitentes o desconexiones momentáneas de la red.

Me paso que me llegaban reportes de quejas de usuarios por las constantes desconexiones que sufrían, luego procedí a configurar este parámetro y las quejas disminuyeron no desaparecieron (Habían otros problemas) pero en su mayoría sí.

Consideraciones:

La configuración de un valor muy bajo podría traer consecuencias en el rendimiento de la red por el tráfico que se generaría para realizar las comprobaciones.

Ejemplo:
#Por Defecto: 0

#Mínimo : 0

#Recomendado: 10

SQLNET.EXPIRE_TIME=10


TCP.EXCLUDED_NODES

Nos permite indicar que clientes no podrán establecer conexión a la base de datos. Se puede definir por la ip o nombre de la máquina.

Consideraciones:

Si lo configuran deben de asegurarse que los host o ip a excluir no estén los procesos de respaldos, repositorio +ASM, etc.

Sintaxis:

TCP.EXLCUDED_NODES=(hostname | ip_address, hostname | ip_address, ...)


  Ejemplo:

#Se deniega las conexiones a la base desde la ip 192.168.1.133 y al host pccliente05

tcp.validnode_checking =yes

tcp.excluded_nodes = (192.168.1.133,pccliente05)

 

TCP.INVITED_NODES

Nos permite indicar que clientes podrán establecer conexión a la base de datos. Se puede definir por la ip o nombre de la máquina.

Consideraciones:

Si lo configuran deben de asegurarse que todos hosts o ip de servicios o clientes que deban establecer conexión a la base de datos como procesos de respaldos, repositorio +ASM, etc.

Sintaxis:

TCP.INVITED_NODES=(hostname | ip_address, hostname | ip_address, ...)


 

Ejemplo:

#Se permite las conexiones a la base desde la ip 192.168.1.134 , las conexiones locales y al host pccliente01

tcp.validnode_checking =yes

tcp.invited_nodes = (192.168.1.134, localhost, pccliente01)

 

TCP.VALIDNODE_CHECKING

Nos permite habilitar la validación de la configuración TCP.INVITED_NODES y TCP.EXCLUDED_NODES.

Consideraciones:

Si el valor de TCP.VALIDNODE_CHECKING no está seteado en yes entonces no tiene efecto la configuración de TCP.INVITED_NODES y TCP.EXCLUDED_NODES.

Ejemplo:

#Por Defecto: no

#Permitido : yes, no

tcp.validnode_checking =yes

   

NOTA:

Si modificas el archivo SQLNET.ORA para que se apliquen los cambios deberás reiniciar el servicio del listener o recargar la configuración.

Ejemplo:

##Recargando la configuración

C:\>lsnrctl

LSNRCTL for 32-bit Windows: Version 10.2.0.4.0 - Production on 15-JUL-2011 18:47:06

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

Welcome to LSNRCTL, type "help" for information.

LSNRCTL> reload

The command completed successfully

 

##Reiniciar

C:\>lsnrctl

LSNRCTL for 32-bit Windows: Version 10.2.0.4.0 - Production on 15-JUL-2011 18:47:06

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

Welcome to LSNRCTL, type "help" for information.

LSNRCTL> stop

The command completed successfully

LSNRCTL> start

The command completed successfully

2 comentarios:

  1. Hola. Muy buena recopilación, pero y en el caso en el que no configuremos en nuestro servidor dicho archivo, o si ni siquiera existe, cúales son las implicaciones?
    Un saludo.

    ResponderEliminar
  2. Saludos Germán,
    Lo que pasaría es que tomaria los valores por defecto ya que cuando se instala la base de datos el único que se crea en el sqlnet.ora es SQLNET.AUTHENTICATION_SERVICES = (NTS).

    Todos los demas valores se asumen por el default.

    Gracias por tu comentario

    ResponderEliminar