Cómo solucionar el error “ORA-12514 TNS Listener Does Not Currently Know of Service Requested”. Soporte inmediato gratuito




Cómo solucionar el error “ORA-12514 TNS Listener Does Not Currently Know of Service Requested”. Soporte inmediato gratuito






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:

  1. Inspeccionar y corregir el archivo tnsnames.ora.
  2. Comprobar el archivo sqlnet.ora y la jerarquía de nombres.
  3. Ejecutar el comando lsnrctl status para confirmar que el servicio está registrado en el Listener.
  4. Realizar pruebas usando TNSPing y SQL*Plus para aislar el problema.
  5. 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

  1. 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)
    )
  )
  1. 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 y password con las credenciales de acceso.
  • ORCL con el alias en tu archivo tnsnames.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: