Angenommen, Ihre Datenbank befindet sich auf dem Knoten mit dem Hostnamen "dbhost".
Erstens, können Sie dbhost ping? Wenn nicht, dann ist das Netzwerk nicht Oracle.
Wenn Sie können, können Sie über Port 1521 auf diesem Host telnet. Wenn nicht, handelt es sich entweder um ein Firewall-Problem oder es wird kein Oracle-Listener auf dem Remote-Knoten ausgeführt (oder es ist ein anderer Port).
Vorausgesetzt, es läuft, möchten Sie eine SID oder SERVICE_NAME vom DBA. Sie sind im Allgemeinen gleich und wenn es sich um ein * nix-System handelt, ps -ef | grep smon
werden Ihnen " " die SIDs der laufenden Instanzen angezeigt. Die kostenlose Express Edition-Datenbank hat normalerweise die SID von XE
Wenn 1521 Verkehr empfängt, versuchen Sie es
sqlplus user/pass@dbhost:1521/XE
Ersetzen Sie XE durch das, was auch immer Ihre SID ist.
================================================== ============================ Nach dem Kommentar unten. Ich würde irgendwo eine Firewall vermuten.
Auf der Seite des Datenbankservers sollte der Listener Port 1521 überwachen. Es gibt Einstellungen in sqlnet (ich denke, tcp_invited_nodes), die als Firewall fungieren können und dem Listener mitteilen, dass er nur Verbindungen von Whitelist-IP-Adressen akzeptieren soll (oder IP-Adressen von der schwarzen Liste ausschließen soll) IPs).
Wenn der Listener die Verbindung akzeptiert, versucht er, die SID oder den SERVICE zu finden, die die Verbindung anfordert. Wenn kein solcher Dienst vorhanden ist, wird ein Fehler zurückgegeben.
Wenn der Dienst vorhanden ist, versucht der Listener, die Verbindung zur Datenbank zu übergeben, und gibt einen anderen Port zurück, über den die Verbindung tatsächlich mit der Datenbank kommuniziert (dh Port 1521 wird nur während der ursprünglichen Verbindung verwendet). [Es gibt eine Ausnahme für gemeinsam genutzte Serververbindungen, aber sie sind ungewöhnlich.]
Möglicherweise befindet sich die Datenbank möglicherweise in einem Modus, in dem keine Verbindungen akzeptiert werden (RESTRICTED-Modus oder während des Startvorgangs oder des Herunterfahrens). Die Datenbank führt auch eine Authentifizierung durch (z. B. Überprüfung des Benutzernamens und des Kennworts).
Meine Vermutung ist, dass entweder der Listener die Verbindung aufgrund einer Einstellung ablehnt oder (wahrscheinlicher) die neue Netzwerkverbindung nicht über das NAT weiterleiten kann. Versuchen Sie, den OSX Instant Client vom Host aus zu verwenden, und prüfen Sie, ob dies durchkommt. Der Instant-Client ist ziemlich viel und unzip und run, daher ist er keine große Installation und benötigt keine Administratorrechte oder ähnliches.
Wenn der Host funktioniert und die VM nicht funktioniert, versuchen Sie Bridged anstelle von NAT. Das heißt, der VM-Gast erhält seine eigene IP-Adresse und sieht für das Netzwerk wie ein unabhängiges Gerät aus, anstatt sich wie in NAT hinter dem VM-Host zu verstecken.
PS. Ein Community-Wiki erstellt, wie andere beitragen können