2017-10-02 9 views
1

Ich habe 1 DB-Server und 1 App-Server, ich möchte Db-Server von App-Server mit sqlplus Client verbinden. Und die Datenbank hat zwei verschiedene Datenbankinstanzen.Verbinden Oracle DB mit Sqlplus mit Standard die SID

Ich habe meine TNSnames.ora in sqlplus Client konfiguriert, die in App-Server sitzt, und ich bin mit Skript unten an DB-Server verbinden und es funktioniert:

sqlplus username/[email protected] 

Jetzt habe ich eine Anforderung, die SID einzustellen so dass es von der Benutzer-ID abhängig ist, die in linux angemeldet ist. Ich habe versucht, die ORACLE_SID auf die SID exportieren würde Ich mag verbinden:

export ORACLE_SID=mySID 
sqlplus username/password 

Und ich habe diesen Fehler:

invalid username/password

Der Grund davon, glaube ich, dass ich nicht Verbinden Sie sich mit den richtigen Instanzen. Wie kann ich diese SID-Umgebung basierend auf der Benutzeranmeldung in Linux einrichten?

Antwort

0

Ich fand die Lösung, und im Fall für andere Leute Referenz: in Linux, setzen Sie die Variable TWO_TASK auf den Alias, den Sie konfigurieren möchten.

Zum Beispiel wie folgt:

export TWO_TASK=alias2 
+0

Ich bin nicht sicher, was Ihr Beispiel wirklich zeigt. Alles, was Sie tun müssen, ist ORACLE_HOME und ORACLE_BASE und ORACLE_SID zu exportieren. Dies kann in jedem ~/.bash_profile des Benutzers (oder der von Ihnen verwendeten Shell) gespeichert werden. –

+0

@bobdylan Natürlich kann man diese exportieren. ORACLE_SID wurde jedoch nur auf LOCAL DB und nicht auf REMOTE DB angewendet. Wenn Sie den DB-Server vom App-Server verbinden müssen, hilft ORACLE_SID Ihnen in diesem Fall nicht. – TinyIss

+0

Sie tun also nicht @ SID und Sie tun @ TASK_TWO tatsächlich wo TASK_TWO ist ein remotedb Name wie in den TNS-Namen definiert. Das macht mehr Sinn. –