solicitado servicio ora not know given does currently conoce conexion actualmente oracle jdbc listener tnsnames

oracle - not - ora-12514 tns el listener no conoce actualmente el servicio solicitado en el descriptor de conexion



TNS-12505: TNS: el oyente no conoce actualmente el SID proporcionado en el descriptor de conexión (17)

Acabo de enfrentar el mismo problema justo después de instalar Oracle XE 11.2. Después de leer y consultar a un amigo de DBA, ejecuté el siguiente comando:

C:/>tnsping xe TNS Ping Utility for 64-bit Windows: Version 11.2.0.2.0 - Production on 11-ENE-2017 14:27:44 Copyright (c) 1997, 2014, Oracle. All rights reserved. Used parameter files: C:/oraclexe/app/oracle/product/11.2.0/server/network/admin/sqlnet.ora Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = myLaptop)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XE)))

OK (30 mseg)

C:/>

Como puede ver, lleva mucho tiempo resolverlo, así que agregué una entrada al archivo hosts de la siguiente manera:

127.0.0.1 localhost

Una vez hecho esto, volvió a ejecutar el mismo comando:

C:/>tnsping xe TNS Ping Utility for 64-bit Windows: Version 11.2.0.2.0 - Production on 11-ENE-2 017 14:40:29 Copyright (c) 1997, 2014, Oracle. All rights reserved. Used parameter files: C:/oraclexe/app/oracle/product/11.2.0/server/network/admin/sqlnet.ora Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = myLaptop)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SER VICE_NAME = XE))) OK (30 msec) C:/>

Como la respuesta temporal disminuye drásticamente, intenté con éxito la conexión en sqldeveloper.

Estoy intentando conectarme a Oracle 10.2.0 desde NetBeans, usando la siguiente cadena de conexión:

jdbc:oracle:thin:@localhost:1521:XE

La parte más extraña es que todo funcionó bien, hasta que se reinicia. Empecé a tener estos errores TNS-12505 todo el tiempo; mira las entradas finales en mi listener.log :

TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production on 14-APR-2011 13:46:48 Copyright (c) 1991, 2005, Oracle. All rights reserved. System parameter file is D:/oraclexe/app/oracle/product/10.2.0/server/network/admin/listener.ora Log messages written to D:/oraclexe/app/oracle/product/10.2.0/server/network/log/listener.log Trace information written to D:/oraclexe/app/oracle/product/10.2.0/server/network/trace/listener.trc Trace level is currently 0 Started with pid=3460 Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=//./pipe/EXTPROC_FOR_XEipc))) Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Brodyaga-PC)(PORT=1521))) Listener completed notification to CRS on start TIMESTAMP * CONNECT DATA [* PROTOCOL INFO] * EVENT [* SID] * RETURN CODE 14-APR-2011 13:48:54 * (CONNECT_DATA=(SID=XE)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=Brodyaga))) * (ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=58458)) * establish * XE * 12505 TNS-12505: TNS:listener does not currently know of SID given in connect descriptor 14-APR-2011 13:49:00 * (CONNECT_DATA=(SID=XE)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=Brodyaga))) * (ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=58481)) * establish * XE * 12505 TNS-12505: TNS:listener does not currently know of SID given in connect descriptor 14-APR-2011 13:49:02 * (CONNECT_DATA=(SID=XE)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=Brodyaga))) * (ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=58487)) * establish * XE * 12505 TNS-12505: TNS:listener does not currently know of SID given in connect descriptor 14-APR-2011 13:50:23 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=)(USER=Brodyaga))(COMMAND=services)(ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=169869568)) * services * 0

Las primeras tres entradas son mis intentos de conectarme a NetBeans. El cuarto, la conexión a través de SQL * Plus, funcionó bien.

Aquí están los contenidos de mi listener.ora :

SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = D:/oraclexe/app/oracle/product/10.2.0/server) (PROGRAM = extproc) ) (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = D:/oraclexe/app/oracle/product/10.2.0/server) (PROGRAM = extproc) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE)) (ADDRESS = (PROTOCOL = TCP)(HOST = Brodyaga-PC)(PORT = 1521)) ) ) DEFAULT_SERVICE_LISTENER = (XE)

Y tnsnames.ora :

XE = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = Brodyaga-PC)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XE) ) ) EXTPROC_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE)) ) (CONNECT_DATA = (SID = PLSExtProc) (PRESENTATION = RO) ) ) ORACLR_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE)) ) (CONNECT_DATA = (SID = CLRExtProc) (PRESENTATION = RO) ) )

Y salida de> servicios lsnrctl

C:/Users/Brodyaga>lsnrctl services LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 14-APR-2011 13:59 :45 Copyright (c) 1991, 2005, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE))) Services Summary... Service "CLRExtProc" has 1 instance(s). Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service... Handler(s): "DEDICATED" established:0 refused:0 LOCAL SERVER Service "PLSExtProc" has 1 instance(s). Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service... Handler(s): "DEDICATED" established:0 refused:0 LOCAL SERVER The command completed successfully

Ambos servicios de Oracle se inician y SQL * Plus se conecta bien.

¿Hay alguna solución para este error?


Como mencioné al eliminar el colon : y reemplazar con barra / antes de que el sid funcionara para mí.

He tenido este problema antes, también.


Comprobar - LSNRCTL> stat obtuve un resultado como -

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1522))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for 32-bit Windows: Version 11.2.0.1.0 - Production Start Date 17-APR-2016 10:12:38 Uptime 0 days 10 hr. 6 min. 16 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File C:/product/11.2.0/dbhome_1/network/admin/listener.ora Listener Log File c:/app/admin/diag/tnslsnr/admin-PC/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=//./pipe/EXTPROC1522ipc))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1522))) Services Summary... Service "CLRExtProc" has 1 instance(s). Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service... Service "orcl" has 1 instance(s). Instance "orcl", status READY, has 1 handler(s) for this service... Service "orclXDB" has 1 instance(s). Instance "orcl", status READY, has 1 handler(s) for this service... The command completed successfully.

De los detalles anteriores - Mi número de puerto es - 1522 y puedo crear una conexión usando la instancia "orcl" - entonces usé el puerto como 1522 y la instancia como "orcl" - Ahora la URL es -

DriverManager.getConnection("jdbc:oracle:thin:@localhost:1522:orcl", "SYS as SYSDBA","password");

Me funcionó. Por favor, compruebe LSNRCTL> stat en el símbolo del sistema y configure la URL de conexión en consecuencia.
Espero que ayude a alguien.


Después de un cambio de ip en nuestra máquina virtual Oracle, el oyente nunca volvió a funcionar. Finalmente, estos comandos resolvieron el problema (donde 192.168.10.200 es la nueva ip)

[oracle @ oracle admin] $ sqlplus / as sysdba

SQL * Plus: lanzamiento 11.2.0.1.0 producción el martes 10 de mayo a las 12:57:37 de 2016

Copyright (c) 1982, 2009, Oracle. Todos los derechos reservados.

Conectado a: Oracle Database 11g Enterprise Edition Versión 11.2.0.1.0 - Producción de 64 bits con las opciones Partitioning, OLAP, Data Mining y Real Application Testing

SQL> alterar el sistema establecido local_listener = ''(DIRECCIÓN = (PROTOCOLO = tcp) (HOST = 192.168.10.200) (PORT = 1521))'' scope = both;

Sistema alterado

SQL> alterar el registro del sistema;

Sistema alterado

SQL> salir


En mi caso, acabo de seguir los siguientes pasos en Windows 10.

  1. ir al panel de control
  2. haga clic en administrativo
  3. haga clic en servicios
  4. encuentre OracelServeceXE, OracleXEClrAgeng, OracleXETNSListener
  5. Haga clic derecho y presione Inicio / Reiniciar
  6. Después de completar el proceso. Compruebe que funcionará o funcionará;)
  7. Hecho
  8. Todo lo mejor.

Esto funcionó para mí como una magia.

Me conecté a la base de datos y registré el oyente.

alter system set local_listener=''(...)''; alter system register;


Estoy ejecutando oracle xpress edition 11.2 en Windows 8 y tuve el mismo error al intentar conectarme a DB usando sqldeveloper.

He editado listener.ora según la respuesta de Brandt anterior e incluso reinicié mi máquina, el problema no fue solucionado.

He hecho lo siguiente: vaya al panel de control -> herramientas administrativas -> servicios encontrará un servicio llamado "OracleServiceXE" que no se está ejecutando.

Lo inicié e intenté conectarme nuevamente, problema resuelto.


Iniciar OracleServiceHari donde ''HARI'' es el SID, funcionó para mí.

Otros que enfrentan el mismo problema pueden verificar el estado del servicio.


Me encontré con este problema después de un cambio de firewall para restringir el acceso entre nuestra red interna y el servidor de la base de datos que informa el error ubicado en la DMZ. La comunicación funcionaba bien hasta que el cambio y los reinicios del sistema y de la base de datos no fueron de ayuda. En mi caso, ambas instalaciones de Oracle XE11gR2 están en Windows.

Después del día de la lucha encontré http://edstevensdba.wordpress.com/2011/07/30/exploring-the-local_listener-parameter/ y resolví el problema con:

alter system set local_listener=''(ADDRESS=(PROTOCOL=tcp)(HOST=[my server''s ip])(PORT=1521))'' scope=both; alter system register;

puede ser que esto funcionó simplemente debido al ''alter system register'' como lo sugirió ik_zelf. Ya tenía el IP establecido en lugares relevantes en listener.ora y tnsnames.ora.


Paso 1 - Verifica el estado del oyente DB

lsnrctl status

Tenga en cuenta que el oyente que desea (en nuestro caso "orcl") no se muestra.

Paso 2: inicia sesión a través de sqlplus

sqlplus sys/oracle as sysdba

Sqlplus nos dio este mensaje de error:

Writing audit records to Windows Event Log failed

Paso 3: ingrese al Visor de eventos de Windows (eventvwr.exe)

En "Registros de Windows", haga clic derecho en la aplicación y seleccione "Borrar registro". Haz lo mismo para System.

También puede ser conveniente hacer clic derecho en la aplicación y seleccionar Propiedades. Luego, en "Tamaño de registro", seleccione la siguiente opción en "Cuando se alcance el tamaño de registro máximo": "Sobrescribir eventos según sea necesario". Esto evitará que el registro se agote y hará que el DB no se inicie.

En Windows Vista y versiones posteriores, puede ejecutar el siguiente comando para borrar el registro de la aplicación:

wevtutil cl Application

Paso 4 - Inicia sesión a través de sqlplus

sqlplus sys/oracle as sysdba

Ahora debería poder iniciar sesión sin mensajes de error.

Paso 5 - Verifica el estado de escucha DB

lsnrctl status

Ahora debería ver a su oyente ejecutándose.

Paso 6: inicia UCM

UCM ahora debería comenzar.

Para una respuesta más detallada a esta pregunta, puede leer mi publicación completa en el blog .


Solo por otra posibilidad de comprobar, surgió exactamente el mismo problema con un número de puerto incorrecto especificado en conectar URL. Creé una nueva instancia de oracle11g y olvidé matar la anterior que ocupaba el mismo puerto 1521, por lo que la nueva instancia se inició automáticamente en el puerto 1522. La edición del número de puerto resolvió mi problema.


Su base de datos, que aparentemente tiene ORACLE_SID XE, no está definida en listener.ora. Eso no es problema, ya que cuando la base de datos normalmente se abre, se registrará en el oyente predeterminado, siendo el que está en el puerto 1521, por lo que está bien.

  1. es la base de datos abierta?
  2. ¿Cuál es el orden de inicio de listener / database?
  3. es el error persistente?

Si la base de datos comienza antes que el oyente, la base de datos no tiene un oyente para registrarse. Lo hará cada pocos minutos, así que después de un tiempo, espero que el error desaparezca debido a que el registro ha tenido lugar. Puede emitir el alter system register; para acelerar esto Si la base de datos está en modo restringido, las conexiones que utilizan un servicio fallarán. Está utilizando ORACLE_SID, por lo que ese no es su problema.

También verifique los nombres en uso. ¿Localhost se está resolviendo en la misma dirección que Brodyaga-PC? En la cadena jdbc usa localhost y el oyente escucha om Brodyaga-PC. ¿Localhost 127.0.0.1?


Tuve el mismo problema en Windows 7. La causa fue que me habían conectado a VPN usando Cisco AnyConnect Secure Mobility Client.


Vaya a Administrador de tareas y compruebe a continuación los servicios se están ejecutando o no, si no inicie los servicios.

OracleXETNSListener OracleXEClrAgent OracleServiceXE


en Windows en la opción de búsqueda Vaya a herramientas administrativas> servicios de componentes> OracleServiceXE (inicie este servicio)


esto funcionó para mí, hice todo lo anterior y luego cambié:

jdbc.databaseurl=jdbc:oracle:thin:@localhost:1521:xe

a:

jdbc.databaseurl=jdbc:oracle:thin:@localhost:1521/xe


Necesita agregar la entrada SID para XE para registrar la instancia con el oyente.

Después de la instalación de Oracle XE, todo se ve bien, pero cuando emite

C:/>sqlplus / as sysdba SQL>shutdown immediate SQL>startup TNS-12505: TNS:listener does not currently know of SID given in connect descriptor

la instancia no se registrará con el oyente.

Así que por favor edite su listener.ora de esta manera:

SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = XE) (ORACLE_HOME = C:/oraclexe/app/oracle/product/10.2.0/server) ) (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = D:/oraclexe/app/oracle/product/10.2.0/server) (PROGRAM = extproc) ) (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = D:/oraclexe/app/oracle/product/10.2.0/server) (PROGRAM = extproc) ) )

Este problema surgió cuando instalé Oracle XE en Windows 7. No me enfrenté a este problema en Windows XP. En general, esta entrada no debería ser necesaria, porque la instancia debería registrarse automáticamente con el oyente. Al ejecutar Oracle XE en Linux (Fedora), no es necesario agregar XE a la lista sid.