2010-04-29 29 views
6

Tengo un error? Mi desarrollador pl/sql dice que mi base de datos Oracle no puede encontrar el descriptor del servicio, pero cuando hago una comprobación, el oyente me aparece este error.¿Problemas de Oracle TNS?

LSNRCTL> start 
Starting tnslsnr: please wait... 

Service OracleOraDb10g_home1TNSListener already running. 
TNS-12560: TNS:protocol adapter error 
TNS-00530: Protocol adapter error 



LSNRCTL> status 
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP 
TNS-12541: TNS:no listener 
TNS-12560: TNS:protocol adapter error 
    TNS-00511: No listener 
    32-bit Windows Error: 61: Unknown error 

el contenido de mi listener.ora es

SID_LIST_LISTENER = 
    (SID_LIST = 
    (SID_DESC = 
     (GLOBAL_DBNAME = Oracle10g) 
     (ORACLE_HOME = D:\oracle\product\10.2.0\db_1) 
     (SID_NAME = ORCL) 
    ) 
) 

LISTENER = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
) 

y el contenido tnsnames.ora es esto

# tnsnames.ora Network Configuration File: D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora 
# Generated by Oracle configuration tools. 

VMOBILE = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
     (SERVICE_NAME = orcl) 
    ) 
) 

VMOBILEMASTER = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
     (SERVICE_NAME = ORCL) 
    ) 
) 

ORCL = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
     (SERVER = SHARED) 
     (SERVICE_NAME = ORCL) 
    ) 
) 

EXTPROC_CONNECTION_DATA = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) 
    ) 
    (CONNECT_DATA = 
     (SID = PLSExtProc) 
     (PRESENTATION = RO) 
    ) 
) 

Por favor, tengo una fecha límite para éstos noche. Por favor ayuda.

+0

También publique su archivo SQLNET.ORA. Esto podría ser parte del problema. He visto este error cuando este archivo no está configurado correctamente. – Karlomanio

Respuesta

2

Probablemente sea un problema de configuración, lo que significa que es difícil para nosotros resolverlo de forma remota. Las dos cosas que hay que comprobar son

  1. las entradas en el archivo de LISTENER.ORA responden a su archivo TNSNAMES.ORA
  2. La información contenida en el archivo de hosts es correcta.

¿Se trata de una base de datos local o remota a la que está intentando conectarse?

edición

El archivo hosts (en un entorno Windows) se encuentra en algún lugar como

C:\WINDOWS\system32\drivers\etc 

Obviamente depende de cómo su entorno está configurado (letra de unidad diferente o lo que sea).

edición

Se necesita el GLOBAL_DBNAME en el archivo de escucha para que coincida con el SERVICE_NAME en los tnsnsames presentar decir ORCL

+0

He intentado con los archivos de host y está configurado correctamente. ¿Puede ayudarnos a revisar el archivo TNSname.ora y LISTENER.ORA que publiqué anteriormente está en orden? – persistence

0

El error es probable que en el archivo listener.ora. Intente reemplazar localhost en la línea que lee (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) con el nombre O el número de IP del servidor donde se está ejecutando el detector.

+0

He intentado que tu sugerencia siga teniendo el mismo error. LSNRCTL> iniciar partir tnslsnr: por favor espere ... Servicio OracleOraDb10g_home1TNSListener ya se está ejecutando. TNS-12560: TNS: error del adaptador de protocolo TNS-00530: error del adaptador de protocolo – persistence

+0

¿Qué pasa si se hace una 'lsnrctl reload' –

0

Reemplazaría el localhost con lo que ipconfig le indique es la dirección IP que está utilizando.

0

Lamentablemente, este error puede ocurrir en una variedad de casos.

  1. El servicio de base de datos Oracle (OracleServiceXE o cualquier edición que esté utilizando) no se está ejecutando realmente.
  2. El usuario estaba intentando ejecutar el servicio TNSListener en una cuenta que no es de administrador, lo que le impide registrar el servicio de Windows asociado.
  3. Hubo un conflicto debido a más de un ORACLE_HOME en la máquina.
  4. No hay nada de malo con los ajustes de servicio o configuración, pero el servicio TNSListener no se iniciará correctamente hasta que se haya reiniciado el servidor de Windows.
0

He resuelto este mensaje de error al ejecutar la actualidad LSNRCTL comenzar de cmd.exe, comenzó "como administrador".

Tengo el servidor 'localhost' en listener.ora y en tnsnames.ora. También tengo SQLNET.AUTHENTICATION_SERVICES = (NINGUNO) en sql.ini

Antes de ir a intentar usar LSNRCTL.EXE, no tengo servicio de oyente en la lista de servicios de Windows. LSNRCTL start El comando del cmd del administrador lo hace por mí.

Cuestiones relacionadas