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
¿Fue útil?

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

Añadir imagen Conexión

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í.

  1. Iniciar sesión de Windows como un Adminstrator.
  2. Ir a Panel de control.
  3. Propiedades del sistema y haga clic en Medio Ambiente
  4. Para la variable de sistema operativo y cambiar el nombre como "TNS_ADMIN"
    introducir descripción de la imagen aquí

  5. Y cambiar el valor como "dirección del directorio de tnsnames" introducir descripción de la imagen aquí

  6. Reiniciar el sistema.

  7. Congrulations.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top