Establecer conexiones de red en Oracle, generalmente a través de Oracle Net Services, implica varios pasos, incluyendo la configuración del listener y el cliente.
La conexión a una base de datos Oracle puede llevarse a cabo de diferentes maneras, y las dos más comunes son a través de un servicio y mediante un SID (System Identifier).
Cada método tiene sus propias características y usos.

Conexión por SID
- Qué es: El SID es un identificador único para una instancia de base de datos específica. Se refiere a una única instancia física de una base de datos Oracle.
- Uso:
- Útil para ambientes donde se desea conectarse a una instancia específica de la base de datos sin el uso de un nombre de servicio.
- Es más rígido y se utiliza a menudo en aplicaciones que están configuradas para conectarse a una base de datos específica.
Configurar el Listener en el Servidor
El primer paso es asegurarte de que el Oracle Net Listener está configurado y en funcionamiento en el servidor de base de datos.
Configurar el archivo listener.ora
- Este archivo se encuentra en el directorio de configuración de Oracle, típicamente en
<ORACLE_HOME>/network/admin/.
Aquí hay un ejemplo básico de configuración:
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = your_server_hostname)(PORT = 1521))
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = your_db_name)
(ORACLE_HOME = /path/to/oracle/home)
(PROGRAM = extproc)
)
(SID_DESC =
(SID = your_db_name)
(ORACLE_HOME = /path/to/oracle/home)
)
)
Iniciar el Listener
- Utiliza el comando
lsnrctlpara iniciar el listener:
lsnrctl start
Configurar el Archivo tnsnames.ora en el Cliente
El archivo tnsnames.ora es utilizado por los clientes Oracle para resolver nombres de servicios a las descripciones de conexión.
YOUR_DB_ALIAS =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = your_server_hostname)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = your_service_name)
)
)
Conectar al Servidor desde el Cliente
Para conectarte a la base de datos desde un cliente, puedes utilizar herramientas de Oracle como SQL*Plus, Oracle SQL Developer, o cualquier otra aplicación que soporte conexiones Oracle.
Usando SQL*Plus:
sqlplus username/password@YOUR_DB_ALIAS
Verificar la Conexión
Una vez que te hayas conectado, puedes ejecutar una consulta simple para verificar que estás conectado correctamente y que puedes acceder a los datos:
SELECT * FROM dual;
Conexión por Servicio
- Qué es: Se refiere al uso de un «service name» (nombre de servicio) para conectarse a la base de datos. El nombre de servicio está diseñado para ser un identificador lógico que permite la conexión a una base de datos sin especificar detalles físicos sobre cómo se accede.
- Uso:
- Mejor para entornos donde hay múltiples instancias de la base de datos que pueden ser accedidas desde el mismo nombre de servicio.
- El nombre de servicio facilita la conexión a bases de datos que podrían estar en un clúster o en distintas instancias de un mismo servidor.
- Proporciona características como la conexión a la base de datos más eficiente, balanceo de carga y alta disponibilidad.
Configuración del Listener en el Servidor
Asegúrate de que el listener de Oracle esté configurado para aceptar conexiones a un servicio específico.
Configurar el archivo listener.ora
Este archivo se debe ubicar en el directorio <ORACLE_HOME>/network/admin/. Aquí tienes un ejemplo simple de cómo debería verse:
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = your_server_hostname)(PORT = 1521))
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = your_service_name)
(ORACLE_HOME = /path/to/oracle/home)
)
(SID_DESC =
(SID = your_sid)
(ORACLE_HOME = /path/to/oracle/home)
)
)
your_server_hostname: Nombre o dirección IP del servidor donde se ejecuta la base de datos.your_service_name: Nombre del servicio que quieres exponer.your_sid: Identificador del sistema de la base de datos.
Iniciar el Listener
Si no está ya en funcionamiento, debes iniciar el listener:
lsnrctl start
Configuración del Cliente en tnsnames.ora
El cliente debe estar configurado para usar el servicio. Esto se realiza a través del archivo tnsnames.ora, que normalmente se encuentra en el mismo directorio de configuración que el archivo del listener.
Ejemplo de tnsnames.ora:
YOUR_SERVICE_ALIAS =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = your_server_hostname)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = your_service_name)
)
)
YOUR_SERVICE_ALIAS: Un nombre que usarás para hacer referencia a esta conexión.your_service_name: El nombre del servicio definido en el servidor.
Conectarse desde el Cliente
Para conectarte a la base de datos desde el cliente, utiliza SQL*Plus u otra herramienta de Oracle. Asegúrate de que tienes las credenciales correctas (nombre de usuario y contraseña).
Usando SQL*Plus:
sqlplus username/password@YOUR_SERVICE_ALIAS
Verificar la Conexión
Una vez conectado, puedes ejecutar una consulta simple para verificar que todo funciona correctamente:
SELECT * FROM dual;
Solución de Problemas
Si tienes problemas para conectarte, aquí hay algunos pasos para solucionar problemas comunes:
- Verifica que el Listener esté ejecutándose:
lsnrctl status
- Revisa los logs del listener: Los logs pueden encontrarse en el directorio de
network/logdentro delORACLE_HOME. El archivolistener.logcontendrá información sobre errores y conexiones. - Verifica los parámetros de conexión: Asegúrate de que el
HOST,PORT, ySERVICE_NAMEen ambos archivoslistener.oraytnsnames.orason correctos. - Prueba la conexión localmente: Desde el servidor donde se ejecuta la base de datos, intenta conectarte utilizando
sqlplussin el alias TNS para asegurarte que la base de datos está accesible.
La elección entre conectarse por servicio o por SID depende de los requisitos de la aplicación y el entorno. Para aplicaciones que necesitan alta disponibilidad y escalabilidad, la conexión por servicio es generalmente preferible. Por otro lado, si estás trabajando con una instancia específica y no necesitas la flexibilidad de un nombre de servicio, la conexión por SID puede ser suficiente.
Para RAC hay factores nuevos a tomar en cuenta pero eso lo veremos en otra entrada.






Deja un comentario