ORA-12514: TNS:listener, die derzeit nicht wissen, Dienstleistung in connect-Deskriptor
Ich habe ein problem, wenn Sie versuchen, eine Verbindung zu Oracle Database XE über Hörer:
sqlplus system/my_password@XE
Bekomme ich die folgende Fehlermeldung:
ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor
Ich benutze Ubuntu 12.10 und Oracle Express Edition 11g.
Mein Ziel zu verbinden java + oracle-db mit jdbc, aber dort bekomme ich den gleichen Fehler.
Hier sind meine Zuhörer.ora
# listener.ora Network Configuration File:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/xe)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
(ADDRESS = (PROTOCOL = TCP)(HOST = watson)(PORT = 1521))
)
)
DEFAULT_SERVICE_LISTENER = (XE)
und tnsnames.ora
# tnsnames.ora Network Configuration File:
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = watson)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
und
lsnrctl service
LSNRCTL for Linux: Version 11.2.0.2.0 - Production on 04-FEB-2014 17:01:44
Copyright (c) 1991, 2011, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0
LOCAL SERVER
The command completed successfully
- Ihre Zuhörer scheint begonnen zu haben, ziemlich vor kurzem, wenn das war, nachdem die Datenbank gestartet ist es vielleicht nicht registriert haben, obwohl Sie es sollten, wiederholen sich Häufig. Aber um zu überprüfen, wenn Sie
alter system register
tut Ihren Dienst erscheinen in derservices
Liste? Wenn nicht, haben Sie dielocal_listener
parameter eingestellt? Wenn nicht, dass standardmäßig der server-Netzwerk-Namen - also nicht die Auflösung auf die gleiche IP wiewatson
, besonders wenn yout server mehrere IP-Adressen hat?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vorausgesetzt Ihre Datenbank nicht registrieren, auch wenn der Hörer schon eine Weile läuft, es klingt wie Ihre
local_listener
parameter nicht explizit gesetzt, so dass Ihre Datenbank zu registrieren versucht auf eine default-Adresse; und, da es andernfalls zu registrieren, was auch immer-Adresse es scheint nicht dasselbe zu sein, das der listener auf.Vorausgesetzt
watson
ist die Lösung, um eine nützliche externe IP-Adresse, das ist wahrscheinlich der Fall, wenn Sie in der Lage zu bekommen, dass TNS Fehler von außerhalb der box, können Sie sagen, die Datenbank für die Verwendung der gleichen Adresse zu registrieren:Wenn das funktioniert und
lsnrctl services
jetzt zeigtXE
und du bist glücklich mit ihm, Sie können ändern Sie diememory
zuboth
- und re-execute also es bleibt in den nächsten DB neu starten.Alternativ, wenn Sie habe nur versucht, den Anschluss innerhalb der gleichen box,
watson
könnte die Lösung zu etwas, was wenig hilfreich, wie 127.0.0.1 wenn es festgelegt ist, dass in Ihrem/etc/hosts
; oder Ihr/etc/hosts
- Adresse könnte nicht einverstanden mit Ihrem DNS-Eintrag. Sie können ändern Sie dielistener.ora
undtnsnames.ora
'rechts' - FQDN oder die IP-Adresse statt, so lange, wie die Spiele, was auch immer Ihre Datenbank denkt, ist der name des Netzwerks.Die tnsnames.ora ist in Ordnung, es ist für die sqlplus client.
Der Hörer.ora ist nicht gut. Ihnen fehlt die XE-service, wenn Sie Typ lsnrctl service
Schwer zu glauben, Sie haben, um das setup-listener.ora installieren Oracle express.
Hier ist ein Beispiel aus meiner Test-VM.
Mein Beispiel-segment in den Hörer.ora
Musste ich neu starten meine OracleServiceXE service in den windows-Diensten und es funktionierte wieder.