Debian Woody.
Ich kann hier natürlich nur beschreiben, wie ich es auf meinem Rechner fertig gebracht habe." />
corner image
home ·Howto Install Oracle


letzte Änderung:
TCP-States
Netzwerk
Links
Australien
Wertpapiere

Howto Install Oracle

Claus Ebert

Version 1.04

Wie installiert man Oracle 9i (9.2.0.10 for Linux Intel) auf Debian Woody.
Ich kann hier natürlich nur beschreiben, wie ich es auf meinem Rechner fertig gebracht habe.

1.Installation von Oracle

2.Erstellen der Datenbank

3.Automatischen Startup / Shutdown

4.Beispiel-Dateien

5.Patchset


1. Installation von Oracle

Oracle 9i auf einem Debian-System (Woody) zu installieren ist, wenn die richtigen Pakete installiert sind, eigentlich kein großes Problem. (ausnahmen bestätigen die Regel)
Ach ja ... Diese Anleitung setzt einiges Wissen für Debian-Linux und Oracle voraus.

1.1 Vorbereitungen, Requirements

  • Festplatte(n) partitionieren:
    für Oracle 9i werden 1GB swap, und 2.0GB (Standard) oder 2.5GB (Enterprise) als
    /home/oracle benötigt. Es ist prinzipiell keine schlechte Idee jetzt gleich eine Partition für die Oracle-Datenfiles anzulegen (wenn möglich auf einer extra Festplatte zwecks Performance ... oder LVM ??).
    ... ach ja .. Debian benötigt je nach Installation 600MB bis 1.5 GB (KDE).
    Das X-Window-System (ohne Desktop-Environments) muss auf jeden Fall installiert werden, da der Oracle-Installer die X-Libraries benötigt und nur unter einer grafischen Oberfläche läuft.
  • Debian installieren (Woody 3.0)
    Ich habe auf meinem Rechner Woody als
    "bf24" installiert, und in tasksel folgendes ausgewählt:
    [*] X window system
    [*] C and C++
    Wer eine Destop-Umgebung mit installieren will der sollte in tasksel
    [*] desktop environment
    wählen. Aber Achtung, diese Desktops benötigen ca. 1 GB zusätzlichen Festplattenplatz.
  • Als root einloggen, und die benötigten Gruppen und User anlegen.
    • /usr/sbin/groupadd -g 562 oinstall Die GID 562 ist die Gruppen-Id auf der Oracle-CD
    • /usr/sbin/groupadd dba
    • /usr/sbin/useradd oracle -d /home/oracle -u 2048 -g oinstall -G users,dba Erzeugt den Oracle-User. 2840 ist die UID auf der Oracle-CD, und die Gruppen oinstall, users und dba werden dem neuen User zugewiesen.
    • passwd oracle Damit unser neuer User auch ein Passwort bekommen.
  • mkdir /home/oracle legt das Home des Oracle-Users an.
  • chown -R oracle.dba /home/oracle verbrät dem Home-Directory den richtigen Owner.
  • touch /etc/oratab anlegen der Datei oratab, in der das Script dbstart die Oracle-Instanzen sucht, die (z.B. beim Boot) gestartet werden sollen.
  • chown oracle.oinstall /etc/oratab auch diese Datei muß den richtigen Owner haben.
  • Falls Nicht genügend Swap-Space zur Verfügung stehen sollte, kann mann sich folgendermassen helfen:
    • dd if=/dev/zero of=/tmp/swapfile bs=1k count=1024000 Das Swapfile /tmp/swapfile in der Grösse 1GB wird erzeugt.
    • chmod 600 /tmp/swapfile
    • mke2fs /tmp/swapfile FileSystem EXT2 anlegen.
    • mkswap /tmp/swapfile als Swap markieren.
    • swapon -v /tmp/swapfile Aktivieren des neuen Swap-Files
  • Das Shared-Memory sollte für Oracle auf 100MB eingestellt werden, dazu
    sysctl kernel.shmmax eingeben. Falls der ausgegebene Wert kleiner als 100000000 (100MB) ist:
    • sysctl -w kernel.shmmax=100000000 setzt das Shared Memory auf 100MB.
    • echo "kernel.shmmax = 100000000" >> /etc/sysctl.conf Setzt diesen Wert in der sysctl.conf, so das der Wert zum Boot-Zeitpunkt automatisch gesetzt wird.
  • Damit der Oracle-Installer korrekt startet sollten folgende Einstellungen vorgenommen werden:
    • dpkg-reconfigure locales Damit sollten zunächst die in Frage kommenden Locales generiert werden.
    • Danach sollten die Environment-Variablen für den User 'oracle' gesetzt werden:
      • ( export LC_LANG=de_DE, export LC_ALL=de_DE und diverse andere ORA-Variablen) siehe .bash_profile
      • oder via graphische Konfiguration im Windowmanagement (KDE/GNOME) einzustellen.
      z.B.
  • Weitere Voraussetzung ist die Installation des Pakets "libstdc++2.9-glibc2.1": ( apt-get install libstdc++2.9-glibc2.1 ).
  • Der GCC-Compiler sollte in der Version 2.95 vorhanden sein (kann mit gcc -v geprüft werden). Falls gcc in einer neueren Version vorhanden ist, muss der 2.95 GCC installiert werden, und der Link in /usr/bin auf den 2.95 Compiler geändert werden.
  • jetzt noch einige nützliche, aber nicht notwendige Pakete
    apt-get install mc Midnight Commander (mit mcedit, einem kleinen Editor)
top

1.2 Die Installation

Als Beispielpfad für die die Installation wurde /home/oracle  angenommen. Dieser Pfad kann selbstverständlich durch eigene Wünsche ersetzt werden ($ORACLE_HOME muss entsprechend modifiziert werden).
Installations-CD's (1 bis 3) vorbereiten (Durch Ablegen der jeweiligen CD-Kopie in SubDirectories als Disk1, Disk2 und Disk3 kann von der Festplatte installiert werden, was schneller ist und ohne CD-Wechsel vonstatten geht)

  • Als 'root' einloggen
  • Das CD-ROM-Laufwerk (mit der 1. Oracle-CD) mit mount -o exec /cdrom mounten (-o exec damit die Dateien auf dem CD-ROM auch ausgeführt werden können).
  • Mit xhost + oder besser xhost + oracle.rechner.com dem X-Server sagen, das er doch bitte das X-Display des Installers anzeigen soll.
  • Als 'oracle' einloggen.
  • Mit export DISPLAY=:0.0 das Display auf den lokalen Rechner legen. Durch entsprechenden setzen dieser Variable kann das Display des Installer auf einen beliebigen Rechner im Netzwerk umgeleitet werden. z.B: ( export DISPLAY=mein.rechner.com:0.0 ).
    Um das Display zu testen einfach xclock eingeben. Es sollte dann die Uhr auf dem entsprechenden Rechner erscheinen. Wenn nicht ... hat man ein (lösbares) Problem.
  • Von der 1. Installations-CD, oder vom Directory $ORACLE_HOME/Disk1 das script runInstaller starten.
    ACHTUNG Falls von CD installiert wird NICHT in in das Verzeichnis /cdrom wechseln und dann mit ./runInstaller den Installer starten, sondern mit /cdrom/runInstaller den Installer aus einem anderen Verzeichnis starten. Sonst ist es unmöglich das CD-ROM bein CD-Wechsel zu umounten.
  • Im Installer-Applet alle Fragen beantworten, bis mit der Installation begonnen werden kann.
    • Oracle Unix-Gruppe: oinstall
    • Zu Installierndes Produkt: Oracle Database 9.2.0.1.0
    • Installationsart: Standard Edition (2.0GB) oder Enterprise Edition (2.5GB)
    • Datenbank Configuration: Customized / Benutzerdefiniert (ist mehr Arbeit, aber startet am Ende den DB-Assistenten, mit dem man sich Scripten zum erzeugen der Datenbank generieren lassen kann) oder wenn man schon Scripte zum erstellen der Datenbank hat Software Only
  • Ziemlich am Ende der Installation, soll als root das Script $ORACLE_HOME/root.sh ausführen. Da in diesem Script davon ausgegangen wird, das awk unter /bin zu finden ist, scheitert es. Man kann entweder das Script editieren und den Pfad von /bin auf /usr/bin ändern, oder in /bin einen symbolischen Link legen ( ln -s /usr/bin/awk /bin/awk )
top

1.3 Fehler beim Linken / Makefiles

Beim Auftreten von Fehlermeldungen (z.B.: "Error linking ins_net_client.mk"): ..... Universal Installer nicht abbrechen!!!

  • Neue Shell als oracle-User öffnen
  • $ORACLE_HOME - Variable setzen
  • Sicherungskopie von $ORACLE_HOME/bin/genclntsh erstellen:
    cp $ORACLE_HOME/bin/genclntsh $ORACLE_HOME/bin/genclntsh.ori
  • Editieren von genclntsh, Entfernen von ${LD_SELF_CONTAINED} im Bereich 'Create Library'.
  • Danach ausführen des genclntsh Scripts
  • Universal Installer: Retry im Error-Fenster anklicken -und weiter gehts-
top

1.4 Permission denied (libclntsh.so.9.0)

Was auch immer diese Fehlermeldung verursacht. Da (bei mir) die Datei vorhanden war, habe ich diese Fehlermeldung ignoriert.

top

1.5 Error in setting permissions of File/Directory ...

Auch hier ist der Grund der Fehler nicht in letzter Konsequenz bakannt

Die Lösung ist (lt. Oracle Metalink) vergleichsweise einfach:
Zuerst einmal der Installer auf keinen Fall beenden.
Dann einfach die Datei (in einer anderen Shell als user oracle ) mit touch erzeugen.

  • cd /home/oracle/jre/1.1.8/bin/i686/native_threads
    touch .extract_args 
  • cd /home/oracle/jre/1.1.8/bin/i686/green_threads
    touch .extract_args 
  • /home/oracle/jre/1.1.8/bin
    touch .java_wrapper
  • /home/oracle/jre1.3.1/bin
    touch .java_wrapper

Jetzt im Installer mit retry den Kopiervorgang wiederholen

top

2. Erstellen der Datenbank

2.1 Erzeugen der Datenbankscripts

Nach erfolgreicher Installation wird vom Oracle-Installer unter anderem auch der Database-Assistant gestartet (wenn Customized / Benutzerdefiniert als Datenbank-Konfigurartion bei der Installation ausgewählt wurde).
Der Assistennt fragt nach vielen interessanten Dingen, die mann auch brav beantworten sollte. (Wie bereits ganz oben erwähnt ... ich setzt hier einige Oracle-Erfahrung voraus).
Am Ende sollte man die Option create Scripts wählen. Dann landen die Scripten unter $ORACLE_HOME/$SID/scripts
vor hier kann man Sie dann gemütlich Abarbeiten. (Zeitdauer P2 366MHz .. 8 Stunden).
Danach sollte eine funktionsfähige Datenbank zur Verfügung stehen.

top

3. Automatischen Startup / Shutdown

Wie configurire ich Linux, dass meine Datenbanken beim Starten und Beenden von Linux automatisch mit gestartet und gestoppt werden.

3.1 Erstellen / Kopieren des Start/Stop-Scripts für den init.d

Dieses Script benötigt die Datei /etc/oratab , in der alle Instanzen eingetragen sind, die durch dieses Script verwaltet werden sollen. Vor der Installation haben wir diese Datei mit touch angelegt, und durch das installieren der Datenbank sollte diese Datei auch mit einigen Hinweisen gefüllt worden sein. Wenn nicht, unter den Beispieldateien befindet sich eine Beschreibung.
Das Script verwendet die von der Installation erzeugten Scripten $ORACLE_HOME/bin/dbstart und $ORACLE_HOME/bin/dbshut
Es sollte auf jeden Fall getestet werden, ob die beiden Scripten funktionieren (was bei mir NICHT der Fall war).
Evtl. müssen in diesen Scripten noch einige Anpassungen gemacht werden.
Ansonsten einfach die Datei Startup-Script dbora
nach /etc/init.d/ kopieren.
Nach dem kopieren mit
/etc/init.d/dbora start (alle Datenbanken starten), und mit
/etc/init.d/dbora stop (alle Datenbanken stoppen)
testen, ob das Start-Script richtig funktioniert.

top

3.2 Das Startup Script zum Startup anmelden

update-rc.d dbora defaults Trägt unser Startup-Scrip in den entsprechenden Verzeichnissen ein. Es wird dann beim Linux-Startup und beim Shutdown ausgeführt.

top

4. Beispiel-Dateien

Diese Beispiel-Dateien entsprechen den von mir auf meinem Datenbankrechner verwendeten Dateien. Die Variablen die in den Dateien definiert werder ($ORACLE_HOME ...) sollte angepasst werden

4.1 .bash_profile für den Oracle User

diese Datei einfach in das $Home des oracle users kopieren, und die Variablen (ORACLE_HOME ...) den eigenen Bedürfnissen anpassen. Beispiel .bash_profile für den Oracle-User

top

4.2 Beispiel /etc/oratab

Syntax:Instance:OracleHome:DBStart
z.B: db:/home/oracle/db:Y

top

4.3 Startup-Script /etc/init.d/dbora

Diese Script benötigt die Datei /etc/oratab , in der alle Instanzen eingetragen sind, die durch dieses Script verwaltet werden sollen.
Beispiel Startup-Script /etc/init.d/dbora
Einfach nach /etc/init.d/ kopieren und mit:
/etc/init.d/dbora start alle Datenbanken starten, und mit
/etc/init.d/dbora stop alle Datenbanken stoppen

top

4.4 Beispiel listener.ora

Configurationsdatei des Listeners

Beispiel listener.ora

top

4.5 Beispiel Datenbank create scripts

Meine Create-Scripts

Beispiel CEDB.sh
Beispiel context.sql
Beispiel CreateDB.sql
Beispiel CreateDBCatalog.sql
Beispiel CreateDBFiles.sql
Beispiel init.ora
Beispiel interMedia.sql
Beispiel JServer.sql
Beispiel ordinst.sql
Beispiel postDBCreation.sql
Beispiel xdb_protocol.sql

top

5. Patchset

Das letzte mir bekannte Patchser ist Patch No:3095277 (9.2.0.4) cs. 350MB


  ©2016· Claus Ebert · Emailemail senden