ORA-12154: TNS: no podía resolver el identificador de la conexión especificado
Pregunta
Estoy intentando conectar con 11g de Oracle instalado en Linux y EL 5 y obtener el siguiente error
SQL> connect sys/password@ud06 as sysdba
ERROR:
ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor
mi listener.ora bajo network / admin es el siguiente
LISTENER=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=ud06)(PORT=1521))
(ADDRESS=(PROTOCOL=ipc)(KEY=extproc))))
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=orcl)
(ORACLE_HOME=/home/oracle/app/oracle/product/11g)
(SID_NAME=orcl))
(SID_DESC=
(SID_NAME=plsextproc)
(ORACLE_HOME=/home/oracle/app/oracle/product/11g)
(PROGRAM=extproc)))
MI tnsnames.ora es como sigue
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
UD06=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ud06)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
MY estado lsnrctl muestra como sigue:
LSNRCTL> status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ud06.us.server.com)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date 17-FEB-2010 16:23:06
Uptime 0 days 0 hr. 12 min. 33 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /home/oracle/app/oracle/product/11g/network/admin/listener.ora
Listener Log File /home/oracle/app/oracle/product/11g/log/diag/tnslsnr/ud06/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ud06.us.server.com)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=extproc)))
Services Summary...
Service "orcl" has 1 instance(s).
Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...
Service "plsextproc" has 1 instance(s).
Instance "plsextproc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
Solución
Se puede hacer ping ud06 éxito (como ud06, no ud06.us.server.com)?
¿Qué hace el comando
lsnrctl services
mostrar?
EDIT: Me suena como podría ser el nombre de la instancia de base de datos no es en realidad "ORCL"? Lo que la producción de servicios lsnrctl me dice es que el servicio "ORCL", aunque se define en el archivo listener.ora, no está funcionando realmente.
Se puede iniciar sesión con una conexión directa en el servidor? Si es así, ¿qué se utiliza como el valor de la variable entorno ORACLE_SID? Inicie la sesión como usuario SYS y ejecute el comando:
ALTER SISTEMA DE REGISTRO;
A continuación, emita el comando servicios lsnrctl nuevo y ver si una instancia adicional no aparece.
Además, como señala Alex, el comando tnsping está reportando un nombre de servicio completo. Editar el archivo sqlnet.ora y establecer el valor NAMES.DEFAULT_DOMAIN a NULL si tiene un valor.
EDIT 2: ¿Tiene tnsping ud06 en el servidor trabajo? O es mi suposición de que el cliente y el servidor están en diferentes sistemas mal?
Otros consejos
La respuesta a este problema es muy simple. No se preocupe por los archivos .ora o cualquier otra configuración. Oracle hace todo esto simplemente perfecto.
Sólo mientras se conecta a través de línea de comandos, que se confunde con las contraseñas que tienen un símbolo @ en ellos.
Por lo tanto, mientras se conecta a través de línea de comandos SQL, no use una contraseña con una '@' en ella. Sólo tiene que utilizar la interfaz web para crear una cuenta con una contraseña sin un símbolo '@' en ella.
Es decir !! Problema resuelto. Yo había estado rompiendo la cabeza desde hace unos días, y ahora mi problema es solucionado !!
El SERVICE_NAME
en la salida tnsping
no coincide con la entrada en tnsnames.ora
; es ese archivo desde el cuadro de Windows o el sistema Linux? Parece que usted no tiene un (Windows) de entrada tnsnames.ora
local para u06
y de adivinar lo que el nombre del servicio debe estar expandiéndose ella - Creo que eso es lo que significa la referencia al adaptador host
También encuentro con ORA-12154: TNS: no podía resolver el identificador de la conexión especificado, y añadiendo el usuario que intenta conectar con el grupo oinstall de Oracle que fija
.en primer lugar tratar si se ha iniciado la instancia de Oracle:
para Windows:
puesta en marcha> Configuración panel-> administración touls-> Servicios-> OracleServiceORCL (mi ejemplo, por cierto) -> start
Proporcionar la cadena de conexión de esta manera:
servidor: puerto / servicename; Nombre de Usuario; Contraseña
También estaba enfrentando el mismo error, prueba este código:
SQL> conn hr/hr @pdborcl;
y si encuentra el mismo error, significa que usted tiene un nombre de la base enchufable diferente.
Compruebe el nombre de la base de datos conectable con sólo escribir el siguiente comando en sqlplus
sql> SELECT name, con_id FROM v$pdbs;
He arreglado este problema utilizando estos pasos.
En primer lugar, se produjo este error, si no instaló mismo directorio o unidad.
Sin embargo, la respuesta está aquí.