2010-02-18 13 views
6

sto provando a connettersi a Oracle 11g installato su Linux EL 5 ed e ottenendo il seguente erroreORA-12154: TNS: non ha potuto risolvere il contrassegno di collegamento specificato

SQL> connect sys/[email protected] as sysdba 
ERROR: 
ORA-12514: TNS:listener does not currently know of service requested in connect 
descriptor 

miei listener.ora sotto network/admin è il seguente

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))) 

MY tnsnames.ora è la seguente

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) 
    ) 
) 

mio spettacolo stato lsnrctl s come segue:

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 
+0

Ho incontrato ** ORA-12154 ** su una macchina su cui è stato installato ** ** Client Oracle **. La mia risposta [qui] (http://stackoverflow.com/a/26020374/1497596). – DavidRR

risposta

4

Potete fare un ping ud06 con successo (come ud06, non ud06.us.server.com)?

cosa fa il comando

lsnrctl services 

show?

MODIFICA: Mi sembra che il nome dell'istanza del database non sia effettivamente "orcl"? Quello che l'output dei servizi lsnrctl mi dice è che il servizio "orcl", sebbene definito nel file listener.ora, non è in realtà in esecuzione.

Si può accedere con una connessione diretta sul server? In tal caso, che cosa utilizzi come valore della variabile di ambiente ORACLE_SID? Accedere come utente SYS e inviare il comando:

ALTER SYSTEM REGISTER;

Quindi emettere nuovamente il comando lsnrctl services e verificare se non viene visualizzata un'istanza aggiuntiva.

Inoltre, come sottolinea Alex, il comando tnsping sta riportando un nome di servizio completo. Modifica il file sqlnet.ora e imposta il valore NAMES.DEFAULT_DOMAIN su NULL se ha un valore.

MODIFICA 2: il tnsping ud06 sul server funziona? O suppongo che client e server siano su sistemi diversi errati?

+0

sì, posso ping solo ud06. Anche quando faccio tnsping ricevo il seguente C: \ Documents and Settings \ a.APPLICATIONS> tnsping ud06 TNS Ping Utility per Windows a 32 bit: Versione 10.2.0.1.0 - Produzione in data 17-feb- 2 010 23:09:16 Copyright (c) 1997, 2005, Oracle. Tutti i diritti riservati. usate file di parametri: adattatore HOSTNAME utilizzato per risolvere l'alias Il tentativo di contattare (DESCRIZIONE = (CONNECT_DATA = (SERVICE_NAME = ud06.us.server.com)) (ADDRESS = (PROTOCOL = TCP) (HOST = 19,148. 21.230) (PORT = 1521))) OK (350 msec) – user275705

+0

lsnrctl mostra come segue – user275705

+0

[oracle @ ud06 ~] $ lsnrctl services LSNRCTL per Linux: versione 11.2.0.1.0 - Produzione il 17-FEB-2010 23 : 13: 01 Connessione a DESCRIPTION = (INDIRIZZO = (PROTOCOL = tcp) (HOST = ud06) (PORT = 1521))) Riepilogo servizi ... Il servizio "orcl" ha 1 istanza (s). L'istanza "orcl", stato UNKNOWN, ha 1 gestore/i per questo servizio ... Handler (s): "DEDICATED" stabilito: 1 rifiutato: 0 LOCAL SERVER Il servizio "plsextproc" ha 1 istanza (s) . Istanza "plsextproc", stato UNKNOWN, ha 1 gestore/i per questo gestore Handler (s): "DEDICATED" stabilito: 0 rifiutato: 0 LOCAL SERVER Il comando è stato completato correttamente – user275705

1

L'uscita SERVICE_NAME nell'output tnsping non corrisponde alla voce tnsnames.ora; è quel file dalla scatola di Windows o dalla scatola di Linux? Sembra che tu non abbia una voce locale (Windows) tnsnames.ora per u06 e che indovini qual è il nome del servizio dovrebbe espanderlo - Penso che sia quello che il riferimento all'adattatore nome host significa.

0

Eseguo anche in ORA-12154: TNS: non è stato possibile risolvere l'identificatore di connessione specificato e l'aggiunta dell'utente che si collegava al gruppo oinstall di oracle l'ha risolto.

5

La risposta a questo problema è molto semplice. Non preoccuparti dei file .ora o di qualsiasi altra configurazione. Oracle fa tutto questo semplicemente perfetto.

Solo durante il collegamento tramite riga di comando, viene confuso con le password che contengono un simbolo @.

Pertanto durante la connessione tramite linea di comando SQL, non utilizzare una password con un '@' in esso.Basta usare l'interfaccia web per creare un account con una password senza il simbolo '@'.

Questo è !! Problema risolto. Mi ero rotto la testa per diversi giorni, e ora il mio problema è risolto !!

0

primo tentativo se l'istanza di Oracle è avviato:

per le finestre:

Start-> Pannello di configurazione> Amministrazione touls-> Servizi-> OracleServiceORCL (il mio esempio tra l'altro) -> avviare

0

Fornire la stringa di connessione in questo modo:

ServerName: port/NomeServizio; User Name; password

Add connection image

0

Sono stato anche affrontando lo stesso errore, provare questo codice:

SQL> conn hr/hr @pdborcl; 

e se trovate stesso errore, significa che si ha un diverso nome del database pluggable. Controllare il nome del database pluggable semplicemente scrivendo il seguente comando in sqlplus

sql> SELECT name, con_id FROM v$pdbs; 
0

ho risolto questo problema usando questa procedura.

Prima di tutto, si è verificato questo errore, se non è stata installata la stessa directory o unità.

Ma la risposta è qui.

  1. Accesso finestre come amministratore.
  2. Passare al Pannello di controllo.
  3. Proprietà di sistema e clicca Ambiente
  4. Trova la variabile OS e cambiare nome come un "TNS_ADMIN"

    enter image description here

  5. e cambiare il valore di "indirizzo directory di tnsnames" enter image description here

  6. Riavvia il sistema.

  7. Congressi.
Problemi correlati