Oracle Net
Introducción
1. La función de Oracle Net
En este libro solo nos interesaremos por la comunicación entre un cliente y un servidor. La comunicación entre dos servidores es un caso particular, en el que un servidor juga el rol de cliente frente al otro servidor; en este servidor cliente, Oracle Net se debe configurar a la vez como servidor y como cliente.
El objetivo de Oracle Net es hacer que la red sea "transparente" para las aplicaciones: las aplicaciones no necesitan saber dónde está el servidor, cuál es el protocolo que se debe utilizar para conectarse al servidor, etc. Las aplicaciones solo necesitan conocer un nombre de servicio de red (una especie de alias), que permitirá establecer una conexión con la base de datos deseada.
Oracle Net se debe instalar en el lado cliente y en el lado servidor; por defecto, Oracle Universal Installer realiza esta instalación. Después de la instalación, la capa Oracle Net se debe configurar también en ambos lados, cliente y servidor.
2. Principios de funcionamiento
El siguiente esquema ilustra el funcionamiento (simplificado) de Oracle...
Configuración del lado servidor
1. Creación del proceso de escucha
Si no se ha creado ninguna base de datos durante la instalación de Oracle, no se ha configurado todavía ningún proceso de escucha: el archivo listener.ora no existe, ni tampoco el servicio asociado en plataformas Windows. En una situación como esta, para crear un proceso de escucha se recomienda utilizar la aplicación Asistente de configuración Oracle Net (menú Todos los programas - Oracle - nombre_oracle_home - Herramientas de Configuración y Migración - Asistente de configuración de Red en plataformas Windows o script shell netca en plataformas Unix):
Seleccione la opción Configuración del Listener y haga clic en el botón Siguiente.
Seleccione el botón radio Agregar y haga clic en el botón Siguiente.
En plataformas Windows, si Oracle se ha instalado con una cuenta de usuario estándar (recomendado), el asistente le solicita introducir la contraseña del usuario en cuestión. Por el contrario, si Oracle se ha instalado con una cuenta de sistema Windows integrada, esto no se solicita. Ya no se pide en una plataforma Unix. Deje el nombre por defecto propuesto para el proceso de escucha (LISTENER), si es necesario indique la contraseña del usuario y haga clic en el botón Siguiente.
Asegúrese de que el protocolo TCP está seleccionado y haga clic en el botón Siguiente.
Seleccione el número de puerto TCP/IP utilizado por el proceso de escucha (1521 por defecto) y haga clic en el botón Siguiente.
Seleccione la opción No y haga clic en el botón Siguiente.
La creación del proceso de escucha ha terminado. Haga clic en el botón Siguiente.
Haga clic en el botón Terminar para salir del asistente.
2. Configuración del proceso de escucha
La configuración del lado servidor consiste en configurar el proceso de escucha LISTENER, es decir, indicar "cómo" y para qué bases "escucha".
Esta configuración se puede realizar directamente en el archivo listener.ora, pero supone entender bien la estructura de este archivo, lo cual no resulta rápido (consulte el ejemplo más adelante). Por lo tanto, lo más sencillo consiste en utilizar la aplicación Oracle Net Manager (menú...
Configuración del lado cliente
1. Introducción
Para configurar el cliente, es necesario:
-
seleccionar los métodos de resolución de nombres que puede usar el cliente;
-
configurar los métodos de resolución de nombres seleccionados.
Los métodos de resolución de nombres que el cliente puede utilizar se almacenan en el archivo sqlnet.ora. Si se usa el método de resolución de nombres local, además hay que definir uno o varios nombres de servicio de red en el archivo tnsnames.ora.
Por defecto, estos dos archivos están en el repositorio $ORACLE_HOME/network/admin (plataforma Unix o Linux) o bien en %ORACLE_HOME%\network\admin (plataforma Windows). Esta ubicación se puede modificar definiendo la variable de entorno TNS_ADMIN.
Los archivos sqlnet.ora y tnsnames.ora se pueden editar directamente, pero para ello es necesario entender bien su estructura y conocer la sintaxis y el papel de los diferentes argumentos.
Lo más sencillo es utilizar la aplicación Oracle Net Manager (menú Todos los programas - Oracle - nombre_oracle_home - Herramientas de configuración y migración - Net Manager en plataformas Windows o script shell netmgr en plataformas Unix).
2. Selección de los métodos de resolución de nombres
Para configurar los métodos de resolución de nombres que el cliente puede utilizar, haga clic en el icono Perfil y seleccione el elemento Nomenclatura en la lista desplegable:
En una configuración estándar, el método de resolución de nombres local (TNSNAMES) y el método de conexión simplificada (EZCONNECT) están seleccionados por defecto. Usando los diferentes botones de este panel es posible añadir o eliminar métodos y modificar el orden en el que se utilizarán los métodos.
La zona Dominio por Defecto permite añadir un nombre...
Problemas habituales y soluciones
Los posibles problemas de conexión entre un cliente y un servidor son numerosos.
ORA-12541: TNS: sin proceso de escucha
TNS-12541: TNS: ningún proceso de escucha
Explicación |
Se ha encontrado el servidor especificado por la cadena de conexión, pero no responde ningún proceso de escucha. |
Causa(s) |
El proceso de escucha no se ha iniciado. El puerto indicado en la cadena de conexión no corresponde al puerto de escucha del proceso de escucha. |
Acción(es) |
Comprobar que los puertos están bien configurados, tanto del lado cliente como del lado servidor. Comprobar que el proceso de escucha esté iniciado (y arrancarlo si fuera necesario (no dude en volver a arrancarlo en caso de duda)). |
ORA-12505: TNS: el proceso de escucha no conoce actualmente el SID que se indica en el descriptor de conexión
ORA-12514: TNS: el proceso de escucha no conoce actualmente el servicio solicitado en el descriptor de conexión
Explicación |
El proceso de escucha se ha contactado correctamente, pero el SID o el SERVICE_NAME indicado en la cadena de conexión no se corresponde con ninguna instancia escuchada por el proceso de escucha. |
Causa(s) |
El SID o SERVICE_NAME indicado en la cadena de conexión no es correcto. El SID_NAME especificado en el archivo de configuración del proceso de escucha no es correcto. |
Acción(es) |
Comprobar que los identificadores de instancia o los nombres de servicio se corresponden correctamente entre el cliente y el servidor (utilizar el comando status o services de la herramienta lsnrctl). En caso de duda, utilizar un SID en lugar de un SERVICE_NAME en la cadena de conexión. |
ORA-12545: Conexión imposible porque el host o el objeto destino no
existen
TNS-12545: la conexión ha fallado porque el host o el objeto destino...