SQL*Plus unter Ubuntu (Instant Client)

Diese Beschreibung wurde mit dem Oracle Instant Client 11.2.0.1 x86-64 auf Ubuntu 10.04 „Lucid Lynx“ getestet.

Allgemeines

Seit der Version 9i liefert Oracle den Client — also die SQL*Net-Treiber — nicht mehr einzeln aus sondern nur noch im Bundle mit dem Oracle Server. Hat man die CDs gerade nicht zur Hand, muß man daher leider fast 1GB Daten herunterladen, um den Client installieren zu können.

Wer Produkte vertreibt, die auf Oracle aufsetzen und daher den Client benötigen, konnte bislang nicht einfach den Client mit vertreiben, da dies durch Oracles Lizenz nicht erlaubt war.

Beide Probleme löst der frei erhältliche „Instant Client“, der separat von anderer Oracle-Software (und damit z.B. ohne obligatorisches ORACLE_HOME) installiert werden kann. Dieser ist mit etwa 36MB (10g, 46 MB bei 11g) noch relativ schlank.

Installation

Wenn schon Oracle-Software installiert ist

  • Den Instant Client nicht in das gleiche Verzeichnis kopieren, in dem bereits die Binaries der anderen Oracle-Software liegen ($ORACLE_HOME)! Andernfalls zerschießt man sich damit die bestehende Installation.
  • In der Umgebungsvariablen PATH sollte — unabhängig von der Reihenfolge — entweder nur der Pfad zum Instant Client oder der Pfad zu den anderen Binaries stehen.

Installation unter Ubuntu

  1. Herunterladen des „Basic Clients“ von hier.
  2. Der Download muss zur Systemarchitektur passen (32/64 Bit, Prozessortyp)
    • Es ist jeweils die ZIP-Datei zu laden, da Ubuntu (wie auch Debian u.a.) nicht mit RPM-Paketen umgehen kann.
    • Ggf. kann auch der deutlich kleinere „Basic Lite“ Client eingesetzt werden, dieser unterstützt aber nur NLS_LANGUAGE=American mit den Zeichensätzen ASCII, WE8DEC und UTF.
  3. SQL*Plus kann ebenfalls unter obigem Link als Add-on heruntergeladen werden.
  4. Entpacken der Archive in ein eigenes Verzeichnis (z.B. „~/oracle/instantclient“ oder „/usr/lib/oracle/instantclient“).
  5. Einstellen des Suchpfades auf das neu erstellte Verzeichnis (zur Variablen LD_LIBRARY_PATH hinzufügen).
  6. Wenn eine tnsnames.ora genutzt werden soll: Einstellen der Umgebungsvariablen TNS_ADMIN=/pfad/zur/tnsnames.

Es gibt auch eine alternative, aber aufwendigere Installationsmöglichkeit, bei der der Instant Client in ein .deb-Paket konvertiert wird und sich damit später komfortabler deinstallieren lässt.

Für die Fans von Cut&Paste habe ich hier mal die Anweisungen am Beispiel meines Testsystems zusammengestellt (Auszuführen nach erfolgtem Download im Download-Verzeichnis). Er entpackt die Downloads, richtet einen symbolischen Link ein, damit SQL*Plus ohne Pfadangabe gestartet werden kann und trägt die Umgebungsvariable LD_LIBRARY_PATH fest für den momentanen Benutzer ein:

sudo unzip oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.zip -d /usr/lib/oracle/
sudo unzip oracle-instantclient11.2-sqlplus-11.2.0.1.0-1.x86_64.zip -d /usr/lib/oracle/
export LD_LIBRARY_PATH=/usr/lib/oracle/instantclient_11_2
sudo ln -s /usr/lib/oracle/instantclient_11_2/sqlplus /usr/bin/sqlplus
echo export LD_LIBRARY_PATH=/usr/lib/oracle/instantclient_11_2 >> ~/.bashrc

Verbindungsdeskriptoren

So kann man sich mit dem Instant Client zu einer Datenbank verbinden, wenn keine tnsnames.ora genutzt wird:

Variante 1:

sqlplus scott/tiger@//host:[port][/service name]

Variante 2:

sqlplus scott/tiger@"(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(Host=meinserver)\
(Port = 1521)))(CONNECT_DATA=(SID=ORCL)))"

Weblinks

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s