Oracle9i unter LINUX installieren

 Diese Seite drucken


Diese Kurzanleitung beschäftigt sich mit der Installation einer Oracle9i-Datenbank auf SuSE Linux 7.2. als typischer Linux Intel Standardinstallation, Release 2 (9.2.0.1.0).

Da der Installationsvorgang sowieso als X-Anwednung läuft, kann man sich auch schon von Anfang an grafisch einloggen. Es ist ganz praktisch, wenn man zwei Konsolen offen hat: Eine als root, und eine als oracle, um die Voraussetzungen zu prüfen bzw. einzustellen.

Vor der Installation als root zu erledigen:

Man muss sicherstellen, dass das vorgesehene System die geforderten Mindestvoraussetzungen einer Oracle 9i-Installation an Hardware, Plattenplatz, Betriebssystem usw. erfüllt.

Hardware überprüfen

Hardware Mindestanforderungen
RAM 512 MB (256 MB für den Client)
Swap space mindestens wie RAM, besser 1 GB
CD-ROM Laufwerk ISO 9660-Rockridge-Extensions -kompatibel

Um die Größe des vorhandenen RAM-Speichers festzustellen, kann man folgenden Befehl benutzen:

$ /usr/sbin/dmesg | grep "Physical:"

Um die Größe des Swap-Space festzustellen, kann man folgenden Befehl benutzen. Der an der Kommandozeile ausgegebene Wert in der Spalte BLOCKS muss durch 2 geteilt werden:

$ /sbin/swapon -s

Der normale Swap-Space wird bei vielen Linux-Installationen zu klein sein - bei mir auch. Der Oracle Installer ist ein Java Programm und braucht Unmengen Speicher während der Installation. SuSE hat angegeben, dass er bei einer Testinstallation über 750 MB benutzt, weil entweder Java oder der Installer ein memory leak haben. Das heißt, der Speicher wird während der Installation zwar zugewiesen (allocated) aber nicht wirklich benutzt. Der Installer stürzt aber sang-und klanglos bei 66% ab, wenn er den Speicher nicht hat.

Man kann temporär für die Installation eine Swapfile hinzufügen.

# muss als root ausgeführt werden
su
# eine Datei der Größe 1GB erzeugen (oder noch mehr Byte in der Variable "count")
dd if=/dev/zero of=/swapfile bs=1k count=1048576
# mach daraus ein swapfile
mkswap /swapfile
# und aktiviere es
swapon /swapfile

Nicht vergessen: Nach der Installation wieder deaktivieren mit

swapoff /swapfile

und wieder löschen.

Festplattenplatz

Komponente Erforderlicher Plattenplatz
Datenbanksoftware 3,5 GB
Datenbankvorlage 1 GB

Partitionen

Idealerweise ist das system so partitioniert, dass man das DBMS und die datenbank-Dateien auf eine andere Partition installiert, als die, auf der das Betriebssystem sitzt. Das hat den Voretil, dass man das Betriebsystem unabhängig undaten oder sogar komplett frisch isntallieren und konfigureiren kann, ohne dei Oracle-Installation und/oder daten zu verlieren. Standardmäßig wird die Oracle-Installation ins Verzeichnis /opt/oracle vorgenommen. So sollte also ein Produktionsystem aussehen:

Betriebssystemversion von SuSE Linux

Die aktuelle SuSE/Oracle Support Matrix führt Buch über die aktuell zertifizierten SuSE-Linux-Versionen.
Zum Zeitpunkt der Erstellung diese Dokuments war von den 7.x-Versionen nur der SuSE Linux Enterprise Server (SLES-7) zertifiziert, und zwar mit Kernel 2.4.7 und glibc 2.2.2.
Die hier verwendete Verion 7.2 Professional verwendet den Kernel mit Multiprozessor-Unterstützung 2.4.2-smp Grundsätzlich hatte 7.2 das Statement 'tested, works'.
Welche Kernel-Version installiert ist, kann man mit folgendem Befehl herauskriegen:

$ uname -a

Welche Version der C-Bibliothek libc Ihres SuSE Linux installiert ist, erfährt man mit folgendem Befehl:

$ /lib/libc.so.6

Hier muss meistens upgedatet werden.. Ich habe Yast verwendet und das Online-Update von SuSE für SuSe 7.2 benutzt.

Achtung: Falls man nach einer Oracle-Installation updatet, oder wenn sich schon eine anderer Server auf dem System befindet, muss man unbedingt einen relink für Oracle ausführen.
Dazu geht man in das entsprechende Unterverzeichnis /bin des ORACLE_HOME-Verzeichnisses und führt folgenden Befehl aus:

$ relink all

User und Gruppen anlegen

Die Oracle User und Gruppen werden unter SuSE standardmäßig angelegt.
Für den Oracle HTTP Server (den Apache also) empfiehlt Oracle die Anlage eines Accounts, dem die Apache-Prozesse gehören. Während der Installation muss der Apache User (bei mir 'apache') als erste GID Mitglied in der Gruppe oinstall sein, als zweite GID sollte er Mitglied in seiner eigenen Gruppe sein, in der nur er ist (die heißt bei mir 'apache'). Er bekommt ein normales Home-Verzeichnis und die bash-Shell.

Kernel Parameter konfigurieren

Es gibt von SuSE ein Paket namens orarun9i.rpm , das ein paar Skripte enthält, die wir gut gebrauchen können. Zunächst muss man sich das Package orarun9i.rpm besorgen uns installieren. Das kann man mit Yast machen oder auch mit wget und rpm. Mit  wget geht das so:

$ wget ftp://ftp.suse.com/pub/suse/i386/supplementary/commercial/Oracle/
orarun9i.rpm
 
$ rpm -Uvh orarun9i.rpm

Jetzt sollte man ein Script namens 'oracle' im Verzeichnis /etc/init.d/ finden
Falls nicht: Hier liegt eine Kopie.
Diese Skript stellt alle Kernel-Parameter beim Hochfahren ein und liest aus der Datei /etc/profile.d/oracle.sh die für Oracle wichtigen Standard-Umgebungsvariablen ein. Damit dieses Skript die Kernel-Parameter für dei Installation einstellt, muss man den Computer jetzt neu booten, nachem man das Skript in das Verzeichnis kopiert hat.
Für Details zu den Kernel-Parametern verweise ich auf die Sektion 2-19 ff. des Oracle 9i Installation Guide.

Das Skript hat noch mehr Funktionen für das automatische Starten uns Stoppen von Oracle beim Systemstart, auf die wir später noch eingehen werden.

Kein Java - keine JRE Patches

Oracle installiert unter Linux sien eigenes Java Runtime Environment (JRE): Blackdown JRE 1.1.8 v3. Ich kann aus meiner Erfaihrung nur dringend davon abraten, Oracle auf ein System zu

installierrn, auf dem schon JAVA installiert ist. Am besten ist ein - was Java angeht - 'jungfräuliches' System. Eine Installation eines gepatchten Blackdown JRE (um den memory-leak-Fehler auszuschalten) hatte zur Folge, dass Installer und andere Java-basierte Tools nicht mehr liefen. Warum auch immer !!

Installation problem on non-i686 architectures TODO: übersetzen
 
There is a problem running the Oracle installer on any system where the arch command returns anything else but "i686". This is not a problem with the processor itself, just with the name, because Oracle uses this name as directory names for the Java Runtime Environment used to run the Oracle tools.
To workaround this problem do this: Start the installer and wait for the error, which will be something like "jre not found".

Background info: What happens is that the Oracle script that starts the installer copies the JRE from ./stage/Components/oracle.swd.jre/1.1.8.0.0/1/DataFiles/Expanded/linux/ to /tmp/OraInstall/jre, and then attempts to start the Java Oracle Universal Installer, using the JRE in /tmp/OraInstall/jre/(bin|lib)/`arch`/, which fails if the architecture is not "i686" - not for any valid reason but simply because to assume all Intel and compatible processors are called "i686" is not a good idea!

After getting the error the installer aborted, and you execute the commands below (no need to switch to root) and afterwards just restart the runInstaller, which this time will work:

# create symlinks so that the installer finds the JRE
cd /tmp/OraInstall/jre/bin/
ln -s i686 i586
cd ../lib/
ln -s i686 i586

Oracle's Java applications

For example the Management tools (OEM - Oracle Enterprise Manager, started with oemapp dbastudio, for example) are Java applications.
The Java apps occasionally may need two attempts before they start. Sometimes at the first attempt you get lots of error messages and it does not start. If this happens, simply try again.

X-Server und Window Manager

Alle UNIX  X-Server werden unterstützt. Um zu testen, dass das X-Windows-System vernünftig arbeitet, kann man mit folgendem Befehl die X-Clock aufrufen, die Uhr sollte auf dem Monitor erscheinen:

$ xclock

Im Rechenzentrum der Uni Karlsruhe wird standardmäßig der X-Server X-Win32 verwendet. Eine Konfigurationsanweisung zur Zusammenarbeit mit dem kdm unter SuSe Linux 7.2 ist hier.
 

Vor der Installation als User 'oracle' zu erledigen:

Rechte richtig setzen

Damit die Gruppe und 'andere' Lese- und Ausführberechtigung, aber nicht Schreibrechte für die Datein bekommen, die von Oracle erstellt werden, muss der Umask-Parameter des Users 'oracle' auf 022 gesetzt werden.

Die Datei Datei .profile im Home-Verzeichnis des Users 'oracle' suchen oder anlegen (bei mir /opt/oracle/.profile) und dort folgenden Befehl hineinschreiben:

umask 022

Umgebungsvariablen setzen

Um sicherzustellen, dass die Umgebungsvariablen für den User 'oracle' richtig gesetzt werden, müssen folgende Umgebungsvariablen (natürlich mit entsprechender Anspassung an Ihre Installation) in die Datei .profile geschrieben werden. Die Angaben in dieser Datei überschreiben die beim Hochfahren in etc/profile.d/oracle.sh ausgelesenen Umgebungsvariablen, sobald sich der User 'oracle' einloggt.

# ORACLE Umgebungsvariablen setzen

ORACLE_BASE=/opt/oracle; export ORACLE_BASE
ORACLE_HOME=/opt/oracle/IhrOraHome; export ORACLE_HOME
ORACLE_SID=IhreSID; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
ORACLE_OWNER=oracle; export ORACLE_OWNER
NLS_LANG=german_germany.WE8ISO8859P1; export NLS_LANG
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data; export ORA_NLS33


# Den PATH erweitern

set PATH=$PATH:/$ORACLE_HOME/bin

Damit die Umgebungsvariablen für die aktuelle Installationsitzung in Kraft treten, muss man als User 'oracle' das Skript .profile einmal ausführen.

$ cd

$ . $HOME/.profile

Precompiler testen

Man sollte nun noch überprüfen, ob der C-Compiler seinen Pafd findet und ausgeführt wird. Auf das Kommando

$ which gcc

sollte der richtige Pfad angezeigt werden. Mit

$ gcc -v -dumpversion

kann man die Versionsnummer abfragen.

SYS und SYSTEM Passwörter abgesprochen?

Wenn man den Database Configuration Assistant (DBCA) benutzen will, um eine Datenbank zu erstellen, sollte man darauf gefasst sein, die neuen Passwörter bereits am Ende der Konfiguration eingeben zu müssen. Das ist jetzt aus Sicherheitsgründen so.

Vorbereitung für Installation von CD

CD-ROM mounten

An der Konsole als root einloggen. Falls noch von SuSE erledigt vorhanden, das CD-ROM-Mountpont-Verzeichnis (hier cdrom) anlegen.

$ su root

$ mkdir /cdrom

Dann wird das CD-ROM-Laufwerk auf das Verzeichnis gemountet:

$ mount /dev/cdrom /cdrom

Unmounten geht mit :

$ umount /cdrom

Natürlich kann man auch das Kontextmenü des CD-Laufwerks in der grafischen Oberfläche KDE benutzen.

Achtung: runInstaller nicht einfach so von CD starten!

Da es drei Installations-CDs sind, und man diese während der Installation wechseln muss, darf der Oracle Universal Installer nicht gestartet werden, indem man einfach in der Shell ins CDROM-Verzeichnis wechselt und dann das Script ausführt. Man darf auch nicht einfach in einem Dateimanager auf die Datei klicken, um sie auszuführen. In einer X-Windows-Umgebung wird der Installer zwar starten, aber man kommt nicht mehr raus, um die CD zu wechseln.
Stattdessen sollte man sich nicht in das CDROM-Verzichnis begeben, sonder von woanders her das Script mit seinem Pfad aufrufen:

$ cdrom_mount_path/runInstaller

Vorbereitung für Installation von der Festplatte

Man kann sich das Monten und Unmounten währen der Installation ersparen, indem man den Inhalt der CDs vorher auf der Festplatte ablegt. Es ist wichtig, die Verzeichnisse genau wie die CD zu nennen (also Disk1, Disk2 und Disk3).
Der Installer findet dann nahcer automatisch die Inhalte der Disk2 und Disk3. 
 

Das Letzte vor der Installation.....

Bevor man die Installation startet, sollte man sich nochmals vergewissern, dass alles stimmt. Für die Installation von Oracle 9i (9.0.2) auf UNIX-Systemen gibt es hier ein Shell-Script, das die wichtigsten Parameter abfragt und in einem Report dokumentiert.


Die eigentliche Installation

Die Installation kann jetzt als 'oracle' aus dem Home-Verzeichnis des Users 'oracle' heraus gestartet werden.

$ /cdrom/runInstaller

Das Welcome-Fenster erscheint.

Auf 'Next' klicken.

Das Fenster 'Inventory Location' erscheint.

Hier kann das ORACLE_BASE-Verzeichnis angegeben werden. Auf 'Next' klicken.

Das Fenster 'UNIXGroup Name ' erscheint.

Hier muss die Gruppe 'oistall' - wie in SuSE schon für Oracle vorkonfiguriert - angegeben werden. Auf 'Next' klicken.

Das Fenster 'File Locations' erscheint.

Der Eintrag in 'Source...' sollte nicht geändert werden: Er zeigt auf das Archiv products.jar auf dem Installationsmedium.
Im Fled 'Destination...' muss nun der korekte Pfad ORACLE_HOME stehen. Hat man die Variable schon vorkonfiguriert, sollte schon der exakte Werte ausgelesen worden sein. Man darf übrigens nicht einfach ein neues Produkt in ein altes ORACLE_HOME 'überschreiben'. Auf 'Next' klicken.

Das Fenster 'Available Products' erscheint.

Da wir den Datenbankserver Installieren wollen, wahlen wir die erste Option 'Installing Oracle 9i Database'. Auf 'Next' klicken.

Das Fenster 'Installation Types' erscheint.


Da wir die Enterprise-Version installieren wollen, wählen wir hier 'Enterprise Edition'. Auf 'Next' klicken.

Das Fenster ' Database Comfiguration' erscheint.

Da wir eine Standardinstallation mit eine vorkonfigurierten Standarddatenbank vornehmen wollen, wählen wir hier 'Gereal Purpose'.

Das Fenster ' Database Identification' erscheint.

Hier werden nun der Global Database Name und der System Identifier (SID) eingegeben.
Der Datenbankname muss ein eindeutiger Name für die Datenbank sein, der in seiner Netzwerkdomain nur einmal vorkommen darf. Wenn die Datenbank z.B. mydb heißt, darf es sonst kein mydb.domain.com in der Domain domain.com geben.
Der SID identifiziert die Datenbankinstanz eindeutig und ist standardmäßig der erste Teil des voll qualifizierten Global Database Name (in unserem Beispiel also mydb). Auf 'Next' klicken.

Das Fenster ' Database Character Set' erscheint

.

Wir wählen in der Regel das Characterset WE8ISO8859P1. Unicode sollte man wählen, wenn man mit einen LDAP-Server kommunizieren will. Auf 'Next' klicken.

Das Fenster ' Summary' erscheint.

Jetzt kann man noch einmal alle Inforamationen überprüfen. Wenn Alles in Ordnung ist, Auf 'Installt' klicken.

Das Fenster 'Install' mit einem Fortschrittsbalken erscheint.

Bei der Installation von CD muss man zwischendurch die CDs wechseln, dabei mounten und unmounten nicht vergessen!
Außerdem erscheint noch ein Prompt-Fenster, das uns auffordert, das Skript root.sh auszuführen.

Der Installer hat das Skript im Verzeichnis ORACLE_HOME ab. Wir benutezn jetzt einfach das vorher geöffnete root-Fenster und führen folgende Befehle aus:

$ cd $ORACLEHOME

$ . ./root.sh

Wenn das Skript fertig augeführt wurde, gehen wir zurück zu unserem Prompt-Fenster und klicken auf 'OK' .

Das Fenster ' Database Configuration Assistant' erscheint und führt die Installation der Standarddatenbank aus.

Wir werden kurz vor Ende noch nach den Passwörtern für die Accounts 'sys' und 'system' gefragt. Bitte gut merken!!!

[BILD]

Danach meldet sich noch der 'Oracle Net Configuration Assistant' und führt durch die Konfiguration von Oracle Net.. Dabei wird u.a der LISTENER konfiguriert un dei datei tnsnames.ora angelegt.

[BILDER + BESCHREIBUNG]



Automatisches Starten von Oracle beim Hochfahren von Linux

Es ist möglich Oracle so zu konfigurieren, dass die Datenbank ebenfalls hochgefahren wird, wenn der Server hochfährt, und dass die Datenbank beim Runterfahren des Servers sauber runtergefahren wird.

Das geht so vor sich:

Wo müssen wir etwas einstellen?

...

dbhabi:/opt/oracle/OraHome2:Y

...

Bitte beachten: Die Kernel-Parameter werden unabhängig davon korrigiert, ob der Datenbankserver nacher wirklich gestartet wird. Beide Funktionen - Setzen der Kernelparameter und START/STOP des Oracle Demon werden unabhängig voneinander kontrolliert und ausgeführt, nur halt im selben Skript (/etc/init.d/oracle).
Sollte man noch andere Oracle-Agenten oder ähnliches automatisch starten lassen wollen, kann man das Skript selbst ergänzen:


Jetzt müssen wir noch an eine Besonderheit seit 9i Release2 denken, die leider nirgendwo richtig erwähnt wird: Während beim Datenbankstart über sqlplus standardmäßig zuerst nach der SPFILE gesucht wird, suchen die (alten) Scripte dbstart und dbshut nach der init.ora , und zwar dort, wo die früher lag, nämlich unter $ORACLE_HOME/dbs unter dem Namen init<SID>.ora .
Daher müssen wir dort einen gleichnamigen symbolischen Link anlegen, der auf die Pfile zeigt - das Format und die innere Struktur der Files ist ja gleich geblieben.


cd $ORACLE_HOME/dbs
ln -s $ORACLE_HOME/admin/<eureSID>/init<eureSID>.ora.<14-stellige Nummer> init<eureSID>.ora

Dazu muss man wissen, wie man aus der SPFILE ein PFILE exportiert, eine hervorragendes Kurz-Tutorial zu diesem Thema gibt's bei TRIVADIS.


  Petra Haberer  Version 1.0.5