web-dev-qa-db-de.com

Oracle SQL Developer: Fehler - Test fehlgeschlagen: Der Netzwerkadapter konnte keine Verbindung herstellen.

Problem

Bitte beachten Sie, dass ich Details aus Sicherheitsgründen geändert habe. Das Problem bleibt jedoch bestehen. 

Ich habe eine Oracle 11g-Datenbank auf einem Server am Standort installiert, z. B. herp-devDV.derp.edu. Jetzt habe ich eine andere Oracle 11g-Datenbank auf einem Server am Standort, beispielsweise derp-db.derp.edu. 

Ich habe den Verbindungsnamen, den Benutzernamen, das Kennwort, den Hostnamen und den Dienstnamen in Oracle SQL-Entwickler für herp-devDV.derp.edu und derp-db.derp.edu eingegeben. Ich kann eine Verbindung mit dem Schema in derp-db.derp.edu herstellen, aber nicht herp-devDV.derp.edu. Es gibt mir diese Nachricht: 

Failure - Test failed: The Network Adapter could not establish the connection

Einzelheiten

Ich habe folgende Informationen: 

  • Port 1521 ist für beide Server nicht geöffnet, wenn ich telnet
  • Mein Hörer ist für beide in Betrieb. 
  • Ich kann unter Oracle SQL Developer auf derp-db.derp.edu zugreifen. 
  • Der Oracle-Client befindet sich auf meinem lokalen Computer + Oracle SQL Developer 
  • Ich kann auf beiden Servern Remote-Desktop

Was habe ich getan

  • Gegoogelt
  • Paketüberfluss
  • Ran-Stopp und lnrctl-Befehle starten 
  • Auf herp-devDB.derp.edu lief ich lsnrctl status

Ich habe folgende Ausgabe erhalten

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Production
Start Date                03-JUN-2014 13:37:22
Uptime                    6 days 0 hr. 53 min. 4 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   D:\Oracle\product\11.2.0\dbhome_1\network\admin\listener.ora
Listener Log File         d:\Oracle\diag\tnslsnr\HERP-DEVDB\listener\alert\log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(Host=HERP-DEVDB.derp.edu)(PORT=1521)))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
  Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "HERPDEVDBXDB" has 1 instance(s).
  Instance "herpdevdb", status READY, has 1 handler(s) for this service...
Service "herpdevdb" has 1 instance(s).
  Instance "herpdevdb", status READY, has 1 handler(s) for this service...
The command completed successfully

Ich checke meine listener.ora aus und finde sie

  SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (Oracle_HOME = D:\Oracle\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:D:\Oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(Host = HERP-DEVDB.derp.edu)(PORT = 1521))
    )
  )

An diesem Punkt gebe ich zu, dass ich mir am Kopf kratzte, da ich nichts herausragen sehe und mir sage, warum dies nicht funktionieren sollte. 

Der einzige Hinweis ist, wenn ich derp-db.derp.edu überprüfe und den Befehl lsnrctl status ausführe. Bitte Siehe Auszug unten: 

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=DERP-DB.edu)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for 64-bit Windows: Version 11.2.0.3.0 - Production
Start Date                18-MAY-2014 02:19:01
Uptime                    22 days 12 hr. 23 min. 18 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
---etc----

Ich kratzte mich immer noch am Kopf. Warum sollte derp-db eine Verbindung zu DERP-DB.edu herstellen, aber herp-devDB stellt eine Verbindung zu EXTPROC1521 her? Wie kann ich das beheben? Die listener.ora-Datei und die anderen Dateien zwischen diesen beiden Servern sind bis auf den Namen der Instanzen nahezu identisch. Hmmm. 

  • EDIT1: Ich habe den Listener.ora in Herp geändert. Das hat es nicht behoben. 

  • EDIT2: Ich kann an Port 1521 nicht in derp-db.derp.edu telnet. Kann ich mich aber trotzdem mit SQL Developer verbinden? Mit

  • EDIT3 Ich kann auch nicht an herp-devdb.derp.edu an Port 1521 telnet. 
  • EDIT4 Ich kann keine IP-Adressen eines der Server anpingen. 

Hilfe wäre trotzdem sehr dankbar. Vielen Dank

Viele Grüße, Geeky

9
GeekyOmega

Ich beantworte dies zum Nutzen zukünftiger Community-Benutzer. Es gab mehrere Probleme. Wenn Sie auf dieses Problem stoßen, sollten Sie Folgendes beachten: 

  • Stellen Sie sicher, dass Ihre Datei tnsnames.ora vollständig ist und über die Datenbanken verfügt, zu denen Sie eine Verbindung herstellen möchten
  • Vergewissern Sie sich, dass Sie den Server, zu dem Sie eine Verbindung herstellen möchten, aktivieren können 
  • Vergewissern Sie sich, dass auf dem Server der gewünschte Port für die von Ihnen verwendete Anwendung geöffnet ist. 

Nachdem ich diese drei Dinge getan hatte, löste ich mein Problem. 

13
GeekyOmega

Ich hatte ein ähnliches Problem, bei dem ich auch ständig den gleichen Fehler bekam. Ich habe viele Dinge ausprobiert, z. B. die Portnummer des Listeners ändern, die Firewall ausschalten usw. Schließlich konnte ich das Problem durch Ändern der Datei listener.ora beheben. Ich habe folgende Zeile geändert:

(ADDRESS = (PROTOCOL = TCP)(Host = localhost)(PORT = 1521))

zu 

(ADDRESS = (PROTOCOL = TCP)(Host = hostname)(PORT = 1521)) 

Ich habe auch einen Eintrag in der /etc/hosts-Datei hinzugefügt. 

sie können den Oracle-Net-Manager verwenden, um die obige Zeile in der Datei listener.ora zu ändern. Weitere Informationen zur Verwendung von Net Manager finden Sie im Oracle Net Services-Administratorhandbuch. 

Sie können auch den Dienstnamen (database_name.domain_name) anstelle der SID verwenden, während Sie die Verbindung herstellen.

Ich hoffe, es hilft.

9
scv

Ich hatte gerade dasselbe Problem, als ich Oracle 11g installierte und dann die Datenbank erstellte.

Ich weiß nicht einmal, dass der Listener manuell erstellt werden muss ..__ Daher öffne ich den Net Configuration Assistant und erstelle den Listener manuell.

Und ich kann die lokal erstellte Datenbank über den SQL-Entwickler verbinden.

3
Pete Ng

Ich habe gerade gelöst durch: richtigen Host und Portso:

  1. Öffnen Sie den Oracle Net Manager
  2. Lokal
  3. Hörer 

kopieren Sie in Listener auf Adresse 2 Host auf Oracle Developer 

endlich eine Verbindung zu Oracle 

2
Diyar Bakir

Seltsamerweise konnte ich das gleiche Problem lösen, indem ich genau das Gegenteil von svc tat! Ich musste :

1) Ersetzen Sie den FQDN-Hostnamen in meinen Dateien tnsnames.ora/listener.ora durch localhost , und starten Sie den Listener-Dienst und

2) Zweitens musste ich "SYS as SYSDBA" als Benutzernamen im SQL Developer-Eingabetextfeld verwenden

um endlich SQL Developer an meine lokale Instanz anschließen zu können.

1
Fabien Haddadi

Ich hatte das gleiche Problem ... Ich musste meine Firewall ausschalten, dann funktionierte es.

Sie können den Port auch öffnen: http://windows.Microsoft.com/de-in/windows/open-port-windows-firewall#1TC=windows-7

0
Durgesh Gupta

Sie können eine Datei mit dem Namen listener.ora unter dem Installationsordner oraclexe\app\Oracle\product\11.2.0\server\network\ADMIN.__ finden. Sie enthält die folgenden Einträge

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (Oracle_HOME = C:\oraclexe\app\Oracle\product\11.2.0\server)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (Oracle_HOME = C:\oraclexe\app\Oracle\product\11.2.0\server)
      (PROGRAM = extproc)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(Host = Codemaker-PC)(PORT = 1521))
    )
  )

DEFAULT_SERVICE_LISTENER = (XE)

Sie sollten sicherstellen, dass der Host (hier ist Codemaker-PC) der Computername ist. Wenn es nicht korrekt ist, ändern Sie es als Computernamen.

versuchen Sie dann den folgenden Befehl an der Eingabeaufforderung als Administrator auszuführen.

lsnrctl start
0
Codemaker

nur Listener starten, dann können Sie sich mit der Datenbank verbinden.

seine Arbeit gut.

its work fine.

0
Mayank Agrawal

Das hat bei mir funktioniert. kann jemandem helfen. Deaktivieren Sie die Firewall. auf RHEL 7

systemctl stop  firewalld
0
malatesh

Für mich war der Host in tnsnames.ora und listener.ora unterschiedlich eingestellt. Einer wurde auf den vollständigen Namen des Computers und der andere auf IP-Adresse festgelegt. Ich habe sie mit dem vollständigen Namen des Computers synchronisiert und es hat funktioniert. Vergessen Sie nicht, die Oracle-Dienste neu zu starten.

Ich verstehe immer noch nicht genau, warum dies zu Problemen führte, weil ich denke, dass IP-Adresse und Computername letztendlich in meinem Verständnis gleich sind.

0
박건도