Alternative Plattform

Nachdem diverse Datenbankhersteller ihre Systeme auf Linux portiert haben, mochte der Marktführer nicht zurückstehen: seit Oktober können sich Interessierte Oracle 8.0.5 aus dem Netz laden.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 8 Min.
Von
  • Oliver Fischer
  • Sebastian Woelk
Inhaltsverzeichnis

Vorbei sind die Zeiten, in denen Linux-Nutzer bei der Suche nach geeigneten Datenbanken für größere Projekte auf die Produkte der etablierten Hersteller verzichten mußten. Nach der Software AG, Inprise, Informix, Sybase, Empress und IBM bietet nun auch Oracle ihr RDBMS in der Version 8.0.5 für Linux an und preist die Vorzüge (http://www.oracle.com/linux/embrclinux.html) dieses Betriebssystems gegenüber Windows NT: höhere Stabilität, Performance und Sicherheit. Alles bekannte Argumente, wenn ‘bekennende’ Linuxer gegen die Microsoft-Plattform argumentieren.

Schon Ende Juli hatte Oracle die Portierung der Datenbank und des Applikationsservers angekündigt. Seit Anfang Oktober können sich Interessierte die ‘production release’ des RDBMS sowie Installationsanweisungen und Whitepapers aus dem Web ziehen: entweder als einzelnes Archiv mit 140 MByte oder in sieben Häppchen zu jeweils 20 MByte. Wer die Evaluierungslizenz haben möchte, muß sich vorher registrieren. In diesem Artikel geht es nicht um den Datenbankserver als solchen; untersucht wurde vielmehr, wie sich das System unter Linux einrichten läßt und mit welchem Aufwand sich Daten, Datenmodelle und Anwendungen aus einer Oracle7-Anwendung in das neue RDBMS übernehmen beziehungsweise anpassen lassen.

Für den reibungslosen Betrieb empfiehlt die Technical FAQ ein glibc-basiertes Linux-System (>=2.0.7) mit einem Kernel ab Version 2.0.34. Es sollten mindestens 48 MByte RAM sowie 275 MByte Festplattenplatz für die Distribution zur Verfügung stehen. Darüber hinaus verlangt die anzulegende Datenbank nach ausreichend viel Speicherplatz, auf dem Testsystem (Dual-Pentium-II 266 mit 256 MByte RAM, 4-GByte-Festplatte, Red Hat 5.1 als Basissystem) wurden dafür 200 MByte reserviert.

Vor der Installation der Datenbanksoftware muß der Administrator verschiedene Systemparameter anpassen. Zunächst sollte er am Linux-Kernel die Einstellungen für die maximale Größe des Shared-Memory-Segments und der Semaphoren-Arrays laut Installationsanweisung ändern, danach den Kernel rekompilieren und den Rechner neu starten. Wer die hier erfolgte Installation nachvollziehen möchte, findet hier Kernelparameter, Shell-Login-Skripte und Beispiele.

Weiterhin ist ein Unix-Benutzer-Account und eine -Gruppe erforderlich, deren Mitglieder Eigentümer der Software werden. Es empfiehlt sich, die Namen ‘oracle’ für den Benutzer-Account und ‘dba’ für die Gruppe zu verwenden.

Nach dem Entpacken des Archivs ist es zunächst notwendig, als root das Skript oraist/oratab.sh auszuführen. Es erzeugt die Datei /etc/oratab. In ihr wird festgelegt, welche Datenbanken beim Systemstart hochgefahren werden sollen. Danach meldet man sich als Benutzer ‘oracle’ an und setzt die für die Software notwendigen Umgebungsvariablen in den Shell-Login-Skripten.

Folgende Vorgehensweise empfiehlt sich für die Installation:

  • Starten des Installers ./orainst/orainst,
  • Auswahl des Punktes ‘Custom Installation’,
  • Install New Product - Do Not Create DB Objects auswählen,
  • die Default-Einstellungen für ORACLE_BASE und ORACLE_ HOME übernehmen,
  • die Default-Einstellungen für die Pfade zu den Logfiles übernehmen,
  • Auswahl des Verzeichnisses für die Installation,
  • NLS-Support -> All languages.

Während der Installation wird nach der Unix-Gruppe gefragt, man sollte ‘dba’ für die OSDBA (Gruppe mit DB-Rechten) und ‘oracle’ als OSOPER wählen. Die Einrichtung des RDBMS mit dem mitgelieferten Installationsprogramm schlug mehrmals fehl. So führte beispielsweise die Anwahl des Menüpunktes ‘Create/Update Database Object’ zu Abstürzen des Installers. Nach mehreren Versuchen gelang es dann doch, die Software in den notwendigen Verzeichnissen zu installieren. Allerdings mußten einige davon, deren Fehlen der Installer bemängelte, per Hand angelegt werden.

Nach beendeter Installation war es nicht möglich, den Servermanager svrmgrl aufzurufen. Dieser Fehler ist wahrscheinlich auf das Relinken der Software während des Installationsprozesses zurückzuführen. Ein Trick beseitigt dieses Problem: Kopieren des gesamten bin-Verzeichnisses (hier befinden sich die Originaldateien) aus dem Installationsbaum in das Zielverzeichnis und Sicherstellen des Eigentümers (‘oracle’) und der Gruppenzugehörigkeit (‘dba’).

Im Verzeichnis $ORACLE_HOME/orainst befindet sich nach dem Installer-Lauf eine Datei namens root.sh. Dieses Shell-Skript muß mit root-Berechtigung ausgeführt, die Frage nach dem lokalen bin-Verzeichnis mit /usr/local/bin beantwortet werden. Das Skript modifiziert auch die Dateien /etc/oratab und /etc/services. Anschließend ist die Shell-Umgebungsvariable ORACLE_SID zu setzen. Sie legt den SID (Systemidentifier) der zu installierenden Datenbank fest. Laut Oracle sollte der ein vier Zeichen langer String sein (Voreinstellung des Installers ist ‘ORCL’.)

Nach diesen grundsätzlichen Dingen warten die Einzelteile der Datenbanksoftware auf ihre Konfiguration, vorn in der Reihe stehen die netzwerkabhängigen Komponenten. Dazu zählen SQL*Net und das TNS-Subsystem. SQL*Net stellt eine konsistente API zu allen Oracle-Anwendungen zur Verfügung, regelt den Verbindungsauf- und -abbau zur Datenbank und bietet Funktionen zur Fehlerbenachrichtigung. Das TNS-Subsystem (Transparent Network Substrate) ist der Kern der Oracle-Netzwerkkomponenten. Er implementiert eine Reihe von netzwerk- und protokollunabhängigen Funktionen, die Anforderungen aus der SQL-Net-Schicht an die Protokoll-Adapter weiterreichen. Letztere regeln den Netzwerkzugriff mit den dafür vorgesehenen Protokollen, etwa TCP/IP.

Zur Konfiguration des TNS ist die Datei $ORACLE_HOME/network/admin/tnsnames.ora zuständig. Sie enthält Informationen über alle Rechnerknoten, die darauf installierten Datenbanken sowie den eindeutigen TNS-Alias-Namen für das TNS-Netzwerk. Dieser Alias adressiert einen Rechner im Netzwerk und auf diesem Rechner genau eine Datenbankinstanz. Der zweite Teil der Konfiguration bezieht sich auf den Listener-Prozeß und die eigentliche Oracle-Instanz. Diese wird über die Datei $ORACLE_HOME/dbs/initSID.ora eingestellt. Der Listener-Prozeß steuert die Verbindungsanforderungen an die Datenbank und läßt sich über die Datei $ORACLE-HOME/network/admin/listener_ora konfigurieren.

Sind diese Punkte abgehandelt, wird der Listener mit lsnrctl in den Kommandozeilenmodus geschaltet. Das Kommando start ruft den eigentlichen Prozeß auf. Mit status läßt sich der Zustand des Listener abfragen.

Einer der wesentlichen Aspekte für die Entscheidung, Linux als Plattform für Oracle einzusetzen, dürfte die Migrationsfähigkeit vorhandener Datenbestände und -modelle sein. Erfreulich: es gab dabei kaum Schwierigkeiten. Für den Oracle-SQL-Loader entwickelte Skripte ließen sich unverändert weiterverwenden, ebenso wie Datenbankmodelle aus einer Oracle7-Datenbank. Letzteres bedeutet praktisch, die notwendigen Tabellen zu erzeugen und eventuell vorhandene PL/SQL-Skripte einzuspielen. Es dauerte nur einen Tag, einen Datenbestand mit rund 350 000 Datensätzen in das Linux-RDBMS zu übernehmen.

Die Oracle-Administrationssoftware für die Windows-NT-Clients (nicht im Lieferumfang enthalten), ließ sich, basierend auf einer vorhandenen SQL*Net7-Client-Installation sofort in Betrieb nehmen. Auch Fremdsoftware, wie der SQL-Navigator der Firma Quest, funktionierte auf Anhieb. Es ist also nicht zwingend erforderlich, auf den Clients Net8 zu installieren.

Selbstentwickelte Perl-Skripte und C-Programme ließen sich ebenfalls ohne Probleme übertragen. Das für die Perl-Skripte notwendige OraPerl - im CPAN (Comprehensive Perl Archive Network) zu finden - mußte lediglich auf den Client-Rechnern installiert werden. Anschließend waren die Skripte einsatzfähig. C-Programme wollten neu kompiliert werden - ebenso verschiedene Werkzeuge, beispielsweise die Apache-Erweiterung PHP3 und die TCL-Erweiterung oratcl (hier waren Änderungen am Makefile notwendig).

Abgesehen von den Schwierigkeiten mit dem unausgereiften Installer ließ sich das Linux-RDBMS in relativ kurzer Zeit installieren und konfigurieren. Fundierte Kenntnisse über den Betrieb einer Oracle-Datenbank sollte der Administrator jedoch mitbringen. Die Komplexität der Datenbanksoftware ist nicht zu unterschätzen, er muß alle Teilkomponenten sorgfältig aufeinander abstimmen. Die Möglichkeit, vorhandene Oracle-Anwendungen und -Daten ohne Probleme in das neue System übernehmen zu können, macht Linux zu einer kostengünstigen alternativen Datenbankplattform.

OLIVER FISCHER und SEBASTIAN WOELK
sind freiberufliche Softwareentwickler.

Mehr Infos

iX-WERTUNG

[+] Übernahme von bestehenden Datenbankmodellen, Datenbeständen und Anwendungen

[-] unausgereiftes Installationstool

Lieferumfang und Preise
Datenbanksystem für Linux
Software
Oracle Server 8.0.5, inklusive Installer, Intelligent Agent, Pro C/C++, Net8
Hardware
Mindestens PC mit Pentium, 48 MByte RAM, 275 MByte Plattenplatz für Distribution, zusätzlich Platz für Datenbanken
Betriebssystem
glibc-basiertes Linux
Preis
Basispaket mit fünf Lizenzen 3250 DM
Anbieter
Oracle, München (Tel.: 01 30/81 01 11)
Preis ohne MwSt.

(jd)