Cómo solucionar el error ORA-12514: TNS Listener Does Not Currently Know of Service Requested
Aprende a resolver el error ORA-12514 de Oracle paso a paso. Verifica tu configuración de tnsnames.ora
y sqlnet.ora
, comprueba el estado del Listener con lsnrctl status
, utiliza herramientas como TNSPing y SQL*Plus para diagnosticar, y ajusta configuraciones manuales cuando sea necesario. Usa nuestro chatbot gratis para resolver problemas técnicos.
Resumen Rápido
Aquí hay un desglose simple para diagnosticar y solucionar el error ORA-12514:
- Inspeccionar y corregir el archivo
tnsnames.ora
. - Comprobar el archivo
sqlnet.ora
y la jerarquía de nombres. - Ejecutar el comando
lsnrctl status
para confirmar que el servicio está registrado en el Listener. - Realizar pruebas usando TNSPing y SQL*Plus para aislar el problema.
- Comparar configuraciones con herramientas de terceros como SQL Developer.
1. ¿Qué significa el error ORA-12514?
Este error indica que el Listener de Oracle no reconoce el servicio solicitado por la aplicación cliente. En esencia:
- La conexión cliente llega hasta el puerto que escucha el Listener.
- Sin embargo, el Listener no tiene un mapeo con el Service Name que se está solicitando.
¿Por qué ocurre este problema?
Generalmente, estos son los culpables comunes:
- Errores en el archivo
tnsnames.ora
. - El servicio Oracle no está en ejecución o no está registrado dinamicamente en el Listener.
- Problemas en la configuración del Listener o en la red.
2. Verifica la Configuración del Archivo tnsnames.ora
El archivo tnsnames.ora
define cómo se conecta el cliente a los servicios en el servidor. Sigue estos pasos:
Paso 1. Localizar el archivo
Busca el archivo ubicado en el directorio Network/Admin
de Oracle en tu cliente o servidor.
Por ejemplo:
C:\app\<usuario>\product\<versión>\client_1\Network\Admin\tnsnames.ora
Paso 2. Revisa el formato del archivo
Confirma que la entrada del servicio contiene la configuración correcta.
Ejemplo:
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
- HOST: Verifica la IP o nombre del servidor.
- PORT: El puerto predeterminado para Oracle es
1521
. - SERVICE_NAME: Nombre del servicio que se está ejecutando en el servidor.
Asegúrate de que este bloque coincida con el servicio configurado en tu servidor.
3. Revisar la Configuración del Listener
El Listener es el proceso que gestiona las solicitudes de conexión. Es crucial asegurarte de que esté correctamente configurado.
Paso 1. Abre el terminal y ejecuta el comando:
lsnrctl status
Este comando verificará qué servicios están registrados en el Listener. Deberías ver una salida similar a esta:
Service "orcl" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Paso 2. Corrige si es necesario
- Si no ves el SERVICE_NAME en la lista, intenta forzar la configuración manual en el archivo
listener.ora
ubicado en:C:\app\<usuario>\product\<versión>\network\admin\listener.ora
Ejemplo:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = C:\oracle\product\<versión>)
(SID_NAME = orcl)
)
)
- Guarda los cambios y reinicia el Listener con los comandos:
lsnrctl stop lsnrctl start
4. Confirmar la Conexión con TNSPing
TNSPing es una herramienta básica que verifica la conectividad del cliente al servidor.
Ejecuta el comando:
tnsping ORCL
Reemplaza ORCL
con el nombre del alias configurado en el archivo tnsnames.ora
.
- Respuesta exitosa: Se mostrará el tiempo de respuesta.
- Error: Si falla, debes revisar tanto el cliente como la configuración de red.
5. Probar con SQLPlus
SQLPlus puede ayudarte a probar si el cliente puede conectarse al servidor con credenciales válidas.
Paso 1. Abre el terminal:
Navega a la carpeta bin
del cliente Oracle, ejemplo:
C:\app\<usuario>\product\<versión>\client_1\bin
Paso 2. Ejecuta SQLPlus:
sqlplus username/password@ORCL
Reemplaza:
username
ypassword
con las credenciales de acceso.ORCL
con el alias en tu archivotnsnames.ora
.
6. Usar Herramientas de Terceros para Diagnóstico
Utiliza herramientas como Oracle SQL Developer o DBeaver para validar la conexión. Observa las diferencias en los parámetros que utilizan estas herramientas frente a tu configuración manual.
Pro Tip: Si una herramienta como SQL Developer funciona, pero el cliente manual falla, compara las configuraciones de conexión para identificar discrepancias.
Preguntas Frecuentes (FAQs)
1. ¿Qué diferencia hay entre SERVICE_NAME y SID?
- SERVICE_NAME: Representa un conjunto de servicios que ofrece la base de datos.
- SID: Representa una instancia específica de una base de datos.
En la mayoría de los casos, el SERVICE_NAME es preferido.
2. ¿Puedo usar un nombre de servidor en lugar de una IP en tnsnames.ora
?
Sí, pero asegúrate de que:
- El nombre DNS resuelva a la IP correcta.
- La red permita la comunicación al servidor por el puerto especificado.
3. ¿Qué significa el código de error ORA-12541?
Este error indica que el Listener no está en ejecución. Asegúrate de usar lsnrctl start
en el servidor para corregirlo.
4. ¿Cómo reinicio solo el Listener sin detener la base de datos?
Utiliza los comandos:
lsnrctl stop
lsnrctl start
5. ¿Qué hago si sigue fallando después de todos los pasos?
Verifica:
- Configuraciones de firewall entre el cliente y el servidor.
- Licencias y compatibilidad de Oracle entre versiones del cliente y servidor.
Herramientas recomendadas
Para mantener tu sistema eficiente mientras resuelves problemas críticos, consulta nuestras herramientas recomendadas:
- NordVPN: Seguridad en red.
- EaseUS OS2Go: Para portabilidad de entornos.
- MiniTool Power Data Recovery: Recuperación de datos en caso de pérdida accidental.