ORA-12505, TNS:listener, die derzeit nicht wissen, von SID in connect-Deskriptor
Habe ich installiert Oracle 11g Express Edition Release 2 in meinem windows 7 64 bit-OS und versucht, die execute JDBC-Programm, ich bekam dann die folgende Fehlermeldung:
java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:412)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:531)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:221)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.jlcindia.jdbc.JDBCUtil.geOracleConnection(JDBCUtil.java:28)
at Lab3O.main(Lab3O.java:15)
Caused by: oracle.net.ns.NetException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:385)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1042)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:301)
... 8 more
Ab der OracleServiceXE manuell von Dienstleistungen, die für mich gearbeitet.
InformationsquelleAutor Learner | 2013-08-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich das Problem behoben, indem korrigiert wird, meine jdbc-string.
Zum Beispiel die korrekte jdbc-string sein sollte...
Aber die jdbs string ich war mit ...
(Hinweis: zwischen
1521
undXE
sollte ein/
)Diese schlechte jdbc-string geben Sie mir ein ORA-12505 Fehler auch.
Die wunderbare moment, wenn Sie google eine oracle-exception und die Ergebnisse sind stackoverflow-Seiten anstelle von oracle-Seiten 🙂 Festsetzung der JDBC-string löste mein problem.
Antwort war wirklich hilfreich. danke es meinen Tag gerettet 🙂
InformationsquelleAutor Wade H
Gibt es ein paar Dinge, die dieses problem verursachen können, aber bevor Sie loslegen mit JDBC, müssen Sie sicher sein, dass Sie eine Verbindung zur Datenbank mithilfe von SQL*Plus. Wenn Sie nicht vertraut mit SQL*Plus, es ist ein Befehlszeilen-Werkzeug für die Verbindung zu Oracle-Datenbanken, ist ein standard-Teil von Oracle für eine lange Zeit, und es ist im Lieferumfang von Oracle XE.
Wenn eine Verbindung zu einer Oracle-Datenbank mit JDBC, Sie haben keine Verbindung zu der Datenbank direkt. Stattdessen verbinden Sie zu einem TNS-listener, der dann verbindet Sie mit der Datenbank. Der Fehler
ORA-12505
bedeutet, dass der Zuhörer war und Sie konnte eine Verbindung zu ihm herstellen, aber Sie konnte nicht schließen Sie die Datenbank, weil Sie nicht wissen, dass es die Datenbank ist. Es gibt zwei Gründe für dieses:ORA-12505 bedeutet, dass der Hörer weiß, dass die Datenbank, aber der Hörer hat noch nicht eine Benachrichtigung erhalten, aus der Datenbank, die Datenbank ist. (Wenn Sie versuchen, eine Verbindung zur falschen Datenbank, mit der falschen SID, erhalten Sie eine ORA-12154 Fehler "TNS: could not resolve the connect identifier specified".)
Was Oracle-Dienste ausgeführt werden, in das Dienste-snap-in? (Öffnen Sie diese in der Systemsteuerung > Verwaltung > Dienste, oder einfach nur Start > Ausführen >
services.msc
.) Sie benötigen die Dienste OracleServiceXE und OracleXETNSListener ausgeführt werden.Wenn die Dienste sind beide gestartet, können Sie die Verbindung zur Datenbank in SQL*Plus mit einer der folgenden an einer Eingabeaufforderung? (Ich nehme an du hast diese auf die Maschine, die Sie installiert habe Oracle XE auf.)
(Ersetzen
system-password
mit dem Passwort, das Sie für die SYS-und SYSTEM-Benutzer während der Oracle XE installation.)Ersten dieser drei verbinden Sie sich über den TNS-listener, aber die zweiten beiden verbinden direkt auf die Datenbank ohne den Umweg über den Hörer, und nur funktioniert, wenn Sie auf dem gleichen Rechner wie die Datenbank. Wenn die erste nicht aber die anderen zwei erfolgreich sind, dann JDBC-verbindungen auch nicht. Wenn dem so ist, eine Verbindung zu der Datenbank mit den beiden anderen, und führen Sie
ALTER SYSTEM REGISTER
. Beenden von SQL*Plus und versuchen Sie, die erste form wieder.Wenn der Dritte schlägt fehl, aber der zweite funktioniert, fügen Sie Ihren Benutzer-account auf der ora_dba-Gruppe. Dazu in Systemsteuerung > Computerverwaltung > Lokale Benutzer und Gruppen.
Sobald man verbindungen der form
arbeiten, sollten Sie in der Lage sein, eine Verbindung zu Oracle XE über JDBC. (Übrigens, Sie haben nicht gezeigt, uns die JDBC-code, die Sie verwenden, um eine Verbindung zu der Datenbank, aber ich würde vermuten, dass es sehr wohl richtig; es gäbe diverse andere Fehler, wenn Teile der connection string falsch waren.)
Ich sehe nicht, was deine Bearbeitung bringt die Antwort, also habe ich es gelöscht. Wenn Sie dazu beitragen wollen, eine erhebliche Menge auf eine Frage, bitte posten Sie Ihre eigene Antwort eher als die Bearbeitung von jemand anderem.
Ich bin immer diese Fehlermeldung
SP2-0734: unknown command beginning "system/ora..." - rest of line ignored.
auf alle 3diese Botschaft sagt, dass Sie in der SQL*Plus und Sie trat in die Linie
system/ora...
(oder SQL*Plus gelesen, dass die Zeile von einer Datei, die Sie erzählt hatte, es zu Lesen). Die Kommando-Zeilen gab ich oben verwendet werden sollen, aus einer Eingabeaufforderung/shell/Terminal-Fenster. Wenn Sie bereits mit SQL*Plus, ersetzensqlplus
mitconnect
.InformationsquelleAutor Luke Woodward
Auch ich habe den gleichen Fehler, aber wenn er versucht wird, alle drei von Ihnen gescheitert.
Wenn die drei oben genannten Fehler.Versuchen LSNRCTL status, wenn Sie die service (XE in meinem Fall)fehlt, versuchen Sie dies
sqlplus /nolog
conn system ... password ...
connected.
alter system register;
exit
lsnrctl stat
...
Jetzt können Sie sehen, der service
Selbst wenn nicht sehen, versuchen Sie dieses heraus
sqlplus /nolog
conn system
... password ... connected.
alter system set local_listener = '(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))' scope = both;
... system altered ...
alter system register;
exit
lsnrctl stat
Dies sollte wohl funktionieren ...
local_listener
, die orcl-listener wird nun gezeigt, inlsnrctl
. Dank einer million!Das hat mein system, aber beachten Sie, dass ich lief die folgenden: ALTER SYSTEM set local-listener=XE;
wenn ich Schreibe: 'alter system set local_listener = '(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))' scope = both;' gibt Es einen Fehler:
ORA-65040: operation not allowed from within a pluggable database
was bedeutet es? Können nicht konfigurieren Sie die JDBC -: /über diesen link können Sie dba-oracle.com/t_ora_65040.html
sowohl der top-stimmten die Antworten geholfen, aber dieses half mehr. Es sieht aus wie ich nicht 127.0.0.1 als listener-Adresse (ich hatte eins mit dem lokalen Namen von meinem PC). Also durch das hinzufügen dieser neuen, es begann
InformationsquelleAutor Raj
Wenn Ihr immer diese Fehlermeldung "ORA-12505, TNS:listener, die derzeit nicht wissen, von SID in connect descriptor"
Lösung: Öffnen Sie Dienste, und starten Sie
OracleServiceXE
nach, die versuchen, eine Verbindung...es funktioniert für mich, Danke.
Ich hatte ein Gleiches Problem, aber mit dem laufen OracleServiceXE.Also, Neustart eines OracleServiceXE service funktionierte für mich. Weiß nicht, warum?!
Bei der Suche nach OracleServiceXE beachten Sie, dass XE-entspricht dem Datenbank-SID, so stellen Sie sicher, Sie sind auf der Suche für den richtigen service, OracleService[SID]
InformationsquelleAutor C Nageswara Reddy
Fand ich einige Gründe für diese Ausnahme.Sie sind
1)der name Der Datenbank XE standardmäßig.so wird die url"jdbc:oracle:thin:@localhost:1521:XE".
2)Stellen Sie sicher, dass OracleServiceXE,OracleXETNSListener ausgeführt wird.es wird in Systemsteuerung\Alle Systemsteuerungselemente\Verwaltung\Dienste
InformationsquelleAutor rajeesh
Ich löste dieses Problem, indem korrigiert wird, meine JDBC-code.
den korrekten JDBC-string sein sollte...
Aber die JDBC-string-war ich mit war ...
So, den Fehler angeben orcl statt xe zeigte dieser Fehler, wie die SID-name falsch war.
Sie sparen viel meine Zeit, danke!
InformationsquelleAutor javabeginner
Mein Problem ist behoben, wenn ich den folgenden code:
InformationsquelleAutor Rasheed Puttur
Vor ähnlichen Fehler, alle der oben genannten Lösungen nicht helfen.
Es gab ein problem bei der listner.ora-Datei. Durch Fehler, den ich Hinzugefügt hatte
SID
aus derSID_LIST
siehe unten(Abschnitt zwischen den Sternen *).Korrigiert diesen Fehler wie folgt:
Gestoppt und die Datenbank
Hielt den Hörer OracleServiceXE und OracleXETNSListener manuell, da es nicht automatisch stoppen, indem Sie zu Systemsteuerung\Alle Systemsteuerungselemente\Verwaltung\Dienste. Neustart der Datenbank, und es funktionierte wie ein Charme.
InformationsquelleAutor Nirmal Mangal
ich anfangs kam hier mit dem gleichen problem. Ich hatte jus installiert Oracle 12c für Windows 8 (64-bit),aber seitdem habe ich es behoben, indem 'TNSPING xe' auf der Kommandozeile... Wenn die Verbindung nicht hergestellt oder name wurde nicht gefunden,versuchen Sie den Namen der Datenbank,in meinem Fall war es 'orcl'... 'TNSPING orcl' wieder und wenn es pings erfolgreich, dann u müssen, ändern Sie die SID 'orcl' in diesem Fall (oder was auch immer Datenbank-name u verwendet)...
InformationsquelleAutor Jose Rego
Eine Möglichkeit, die ich noch nicht gesehen breit diskutiert wird, dass es möglicherweise ein problem auflösen des Hostnamen im host-Maschine selbst. Wenn es keinen Eintrag für $(hostname) in /etc/hosts, die Oracle-listener-Durcheinander kommt und nicht kommen.
Stellte sich heraus, dass mein problem, und das hinzufügen von hostname und ip-Adresse in /etc/hosts ist das problem gelöst.
InformationsquelleAutor BillT
Oracle:
Dünn-style Service Name Syntax
Dünn-style service-Namen sind nur unterstützt von den JDBC-Thin-Treiber. Die syntax ist:
@//hostname:Portnummer/service_name
http://docs.oracle.com/cd/B28359_01/java.111/b31224/urls.htm#BEIDHCBA
InformationsquelleAutor jeton
Ich auch vor dem gleichen Problem. Ich hatte installiert die Oracle Express edition 10g in Windows XP OS mit VMware und es war in Ordnung arbeiten. Da war es sehr umständlich die Eingabe von SQL-Abfragen in der SQL-Dienstprogramm zur Verfügung gestellt von 10g und da war ich verwendet, um arbeiten mit dem SQL developer, ich installierte 32-bit-SQL-Entwickler in XP und versuchte die Verbindung zu meinem DB-SID ist "XE". Aber die Verbindung ist fehlgeschlagen mit dem Fehler ORA-12505 TNS-listener derzeit nicht wissen, von SID in connect-Deskriptor. Ich war auf See, wie dieses problem aufgetreten ist, da es war in Ordnung arbeiten mit der SQL-Dienstprogramm und ich hatte auch erstellt einige von Informatica-mappings unter Verwendung der gleichen. Ich habe durchsuchen Sie eine Menge von diesem Zeug her, hin, und beantragt der Vorschläge angeboten, mich nach Ping-status "lsnrctl" in öffentlichen Foren, aber ohne Erfolg. Allerdings, heute morgen habe ich versucht eine neue Verbindung erstellen wieder, und Voila, es funktionierte ohne Probleme. Ich vermute, nach dem Lesen in einigen Beiträgen, manchmal listener hört, bevor die DB verbindet, oder etwas(entschuldigen Sie mich für mein plumpes als Referenz ich bin ein Neuling hier), aber ich schlage vor, einfach starten Sie den Computer neu und überprüfen Sie erneut.
InformationsquelleAutor user2905345
Ich hatte das gleiche problem also, um dieses problem zu beheben habe ich zuerst neu konfigurieren, meine Hörer mit
netca
danach löschte ich meine alte Datenbank wurde ORCL mithilfedbca
und dann erstellte ich eine neue Datenbank wieder mitdbca
InformationsquelleAutor The Technokrat
Ich habe vor dem gleichen Problem und gelöst durch Neustart des OracleServiceXE service. Goto Services.msc und dann überprüfen Sie die 'OracleServiceXE" - service ist eingerichtet und läuft
InformationsquelleAutor Vijay Thayalan
Wenn Sie Oracle Express Edition haben, sollten Sie diese url
Ich hatte ähnliches problem mit liquibase config plugin in pom.xml. Und ich änderte meine Konfiguration:
InformationsquelleAutor Pavlo Chechehov
Check by doing tnsping und Instanz-Namen in die host-Maschine. Wird es geben, u die tns Beschreibung und alle die meiste Zeit der host-name ist anders, das ist nicht passende.
Ich löse mein Problem ebenfalls
In Unix-Maschine
$ tnsping (Enter)
Es gibt mir die volle tns-Beschreibung, wo ich fand, dass der host-name ist anders.. 🙂
InformationsquelleAutor Abhishek Banik
Hab das gleiche Problem alle plötzlich nach Herumspielen mit einigen cmds. Stellte sich heraus, den ORACLE-SERVICE-XE hatte aufgehört zu laufen. Hat mich 2 Sekunden zu starten es aus der Verwaltung. tnx!
InformationsquelleAutor Brian Mk
Bitte überprüfen Sie, ob beide
OracleServiceXE
undOracleXETNSListener
mit dem status gestartet, wenn Sie navigieren durchstart->run->services.msc
.Für meinen Fall nur
OracleXETNSListener
gestartet wurde, aberOracleServiceXE
nicht gestartet war, als ich begonnenright clicking -> start
und überprüft die Verbindung seiner arbeiten für michInformationsquelleAutor user5211481
Ich das Problem gelöst indem er "SID" zu "SERVICE_NAME" in meine TNSNAMES.ora-Datei.
Bitte sehen, ob die DB bittet um SID oder SERVICE_NAME.
Cheers
InformationsquelleAutor Akshay Lokur
Ich hatte ähnliches problem in SQL Workbench.
URL:
jdbc:oracle:thin:@111.111.111.111:1111:xe
nicht funktioniert.
URL:
jdbc:oracle:thin:@111.111.111.111:1111:asdb
funktioniert.
Diese helfen mir in meiner konkreten situation. Ich fürchte, das könnte besteht vielen anderen Gründen, die mit unterschiedlichen Lösungen.
InformationsquelleAutor Máťa - Stitod.cz
Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","scott","tiger");
Fehler, die ich bekam:
java.sql.SQLException: Hörer weigerte sich die Verbindung mit der folgenden Fehlermeldung:
ORA-12505, TNS:listener, die derzeit nicht wissen, von SID in connect-Deskriptor
Die Verbindung Deskriptor durch den client verwendet wurde:
localhost:1521:xe
, Wie ich es gelöst:
Connection con=DriverManager.getConnection("jdbc:oracle:thin:localhost:1521:xe","scott","tiger");
Löschen ( @ )
Weiß nicht, warum, aber seine Arbeit jetzt...
InformationsquelleAutor Srikar Madhavapeddy
Hatte ein ähnliches Problem. Das Problem begann plötzlich auftretenden - wir sind mit Lastenausgleich Datenbank-Verbindungs-URL, aber in der jdbc-verbindungen war ich deutete auf eine einzige db direkt.
Geändert Lastenausgleich-db-url und es funktionierte.
InformationsquelleAutor Kisanagaram
In meinem Fall nicht, war arbeiten, schließlich habe ich gestartet, meine oracle TNS listener und alles funktionierte. Zu kämpfen hatte, für 2 Tage.
InformationsquelleAutor Amarjeet
Bekam ich diese Fehlermeldung ORA-12505, TNS:listener, die derzeit nicht wissen, von SID in connect-Deskriptor, wenn ich versuchte, eine Verbindung zu oracle-DB mit Hilfe von SQL developer.
Den JDBC-string verwendet wurde jdbc:oracle:thin:@myserver:1521/XE, offensichtlich die richtige ist, und die beiden obligatorischen oracle-Dienste OracleServiceXE, OracleXETNSListener waren und läuft.
Die Art, wie ich dieses Problem gelöst (In Windows 10)
InformationsquelleAutor r-sunny
Abgesehen von Laufenden Diensten(OracleServiceXE,OracleXETNSListener) auf es gibt eine chance, Ihre Anti-Viren-software/firewall kann immer noch sperren. Nur stellen Sie sicher, dass Sie nicht blockiert sind.
InformationsquelleAutor sql_dummy
Ich nur fixiert es durch einen Neustart /Inbetriebnahme oracleService im Dienste
InformationsquelleAutor Shahid Hussain Abbasi
Hier ist der code, wie die Verbindung zu Ihrer Oracle-Datenbank:
Wo Benutzername und Passwort müssen entsprechend geändert werden. Auch wenn Sie Oracle 10g installiert haben, dann die richtige version wäre ojdbc14.jar.