ORA-12154: TNS: konnte die Verbindungskennung nicht lösen angegeben
Frage
Ich versuche, Oracle 11g unter Linux EL installiert verbinden 5 und und erhalte die folgende Störung
SQL> connect sys/password@ud06 as sysdba
ERROR:
ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor
meine listener.ora unter network / admin wird folgendermaßen als
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 wird folgt als
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 lsnrctl Status zeigt, wie folgt:
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
Lösung
Können Sie erfolgreich ping ud06 (als ud06, nicht ud06.us.server.com)?
Was bedeutet der Befehl
lsnrctl services
anzeigen?
EDIT: Es klingt für mich wie vielleicht die Datenbankinstanz Name ist nicht wirklich „orcl“? Was die lsnrctl Dienste Ausgang sagt mir, dass die „orcl“ Service, obwohl in der listener.ora-Datei definiert, wird nicht tatsächlich ausgeführt wird.
Können Sie mit einer direkten Verbindung auf dem Server anmelden? Wenn ja, was tun Sie als die Umgebungsvariable ORACLE_SID Wert? Melden Sie sich als Benutzer SYS und geben Sie den Befehl:
ALTES SYSTEM REGISTER;
Ausgabe Dann wird die lsnrctl Dienste Befehl wieder und sehen, ob eine zusätzliche Instanz nicht angezeigt wird.
Auch als Alex weist darauf hin, der tnsping Befehl ein voll qualifizierten Servicenamen meldet. Bearbeiten Sie die sqlnet.ora-Datei und den NAMES.DEFAULT_DOMAIN Wert auf NULL gesetzt, wenn es einen Wert hat.
EDIT 2: Does tnsping ud06 auf dem Server Arbeit? Oder ist meine Annahme, dass Client und Server auf verschiedene Systeme falsch?
Andere Tipps
Die Antwort auf dieses Problem ist sehr einfach. Mach dir keine Sorgen über die .ora Dateien oder jede andere Konfiguration. Oracle tut all diese einfach perfekt.
Nur während über die Kommandozeile verbinden, wird es mit Passwörtern zu verwechseln, die ein @ Symbol in ihnen haben.
Deshalb, während eine Verbindung über SQL-Befehlszeile, die kein Passwort mit einem ‚@‘ ist in ihm. Verwenden Sie einfach das Web-Interface ein Konto mit einem Passwort ohne ‚@‘ Symbol darin zu erstellen.
Das ist !! Problem gelöst. Ich hatte meinen Kopf für ganz wenige Tage wurde zu brechen, und jetzt ist mein Problem gelöst !!
Die SERVICE_NAME
im tnsping
Ausgang hat den Eintrag in tnsnames.ora
nicht überein; ist die Datei aus der Windows-Box oder die Linux-Box? Es sieht aus wie Sie nicht über einen lokalen (Windows) tnsnames.ora
Eintrag für u06
haben und es zu erraten, was der Service-Name es expandieren sollte - ich glaube, das ist, was der Verweis auf die Host-Namen Adaptermittel
ich auch in ORA-12154 laufen: TNS:. Konnte nicht lösen die Verbindungskennung angegeben wird, und das Hinzufügen der Benutzer versucht, die oinstall Gruppe von Oracle zu verbinden fixed it
erster Versuch, ob die Oracle-Instanz gestartet:
für Fenster:
Start-> Konfiguration Panel-> Verwaltung touls-> Dienste-> OracleServiceORCL (mein Beispiel durch die Art und Weise) -> Start
Geben Sie die Verbindungszeichenfolge wie folgt aus:
Servername: port / Servicename, Benutzername, Kennwort
Ich habe auch den gleichen Fehler konfrontiert, versuchen Sie diesen Code ein:
SQL> conn hr/hr @pdborcl;
und wenn Sie denselben Fehler zu finden, bedeutet dies, dass Sie einen anderen steckbaren Datenbanknamen haben.
Überprüfen Sie die steckbaren Datenbanknamen durch nur den folgenden Befehl in sqlplus
Schreiben
sql> SELECT name, con_id FROM v$pdbs;
fixed ich dieses Problem dieser Schritte verwenden.
Zu allererst dieser Fehler aufgetreten ist, wenn Sie nicht Verzeichnis oder Laufwerk installiert haben.
Aber die Antwort ist hier.