Domanda

sto provando a connettersi a Oracle 11g installato su Linux EL 5 ed e ottenendo il seguente errore

SQL> connect sys/password@ud06 as sysdba
ERROR:
ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor

il mio listener.ora sotto network / admin è la 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)))

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

Il mio stato in lsnrctl appare 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
È stato utile?

Soluzione

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

Che cosa significa il comando

lsnrctl services

visualizza?

EDIT: Sembra a me come forse il nome dell'istanza del database non è in realtà "ORCL"? Che l'uscita servizi lsnrctl mi dice è che il servizio "ORCL", anche se definito nel file listener.ora, non è effettivamente in esecuzione.

Si può accedere con un collegamento diretto sul server? Se è così, cosa si usa come l'ambiente valore della variabile ORACLE_SID? Esegui il login come utente SYS ed eseguire il comando:

ALTER sistema di registrazione;

Quindi immettere il comando servizi lsnrctl di nuovo e vedere se un'istanza aggiuntiva non si presenta.

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

EDIT 2: Ha tnsping ud06 sul server di lavoro? O è la mia ipotesi che client e server sono su sistemi diversi che non va?

Altri suggerimenti

La risposta a questo problema è molto semplice. Non preoccuparti per i file .ora o qualsiasi altra configurazione. Oracle fa tutte queste semplicemente perfetto.

Solo durante la connessione tramite linea di comando, si confonde con le parole d'accesso che hanno un simbolo @ in loro.

  
    

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 '@' in esso.

  

Questo è !! Problema risolto. Mi era stato rompendo la testa per un bel paio di giorni, e ora il mio problema è risolto !!

Il SERVICE_NAME nell'output tnsping non corrisponde alla voce nel tnsnames.ora; è che il file dalla finestra di Windows o la casella di Linux? Sembra che non si dispone di un (Windows) entrata tnsnames.ora locale u06 e sta cercando di indovinare ciò che il nome del servizio deve essere in espansione - credo che questo è ciò che il riferimento alla scheda di hostname significa

.

Ho anche incontrato ORA-12154: TNS: non ha potuto risolvere il contrassegno di collegamento specificato, e aggiungendo l'utente tenta di connettersi al gruppo oinstall di Oracle riparato

.

prima provare se viene avviata l'istanza Oracle:

per le finestre:

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

Fornire la stringa di connessione in questo modo:

ServerName: port / NomeServizio; User Name, password

immagine Collegamento Aggiungi

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;

ho risolto questo problema usando questa procedura.

Prima di tutto, questo errore si è verificato, se non è stato installato stessa directory o unità.

Ma la risposta è qui.

  1. Windows Login come Amministratore.
  2. Vai al Pannello di controllo.
  3. Proprietà di sistema e fare clic su Ambiente
  4. Trova la variabile OS e cambiare nome come un "TNS_ADMIN"
    entrare descrizione dell'immagine qui

  5. e modificare il valore di un "indirizzo directory di tnsnames" entrare descrizione dell'immagine qui

  6. Riavviare il sistema.

  7. Congrulations.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top