Software: Beratung und Entwicklung


Installation von Oracle(TM) 11g2 auf Ubuntu 14.10

Dieses kleine HowTo beschreibt die Installation von Oracle 11g2 Database Server auf einem frisch installierten Ubuntu 14.10.

Achtung: Oracle(TM) unterstützt Ubuntu nicht. Oracle(TM) empfiehlt die Installation auf Ubuntu nicht. Es ist also kein Support von Oracle(TM) zu erwarten.

Achtung: Nicht als Produktionsdatenbank verwenden. Die Installation ist bestenfalls als Entwicklungsdatenbank zu verwenden.

Dieses HowTo basiert auf den Anleitungen der folgenden Websites:

http://tutorialforlinux.com/2014/10/03/how-to-install-oracle-11g-r2-database-on-ubuntu-14-04-trusty-lts-64bit-easy-guide/

https://wiki.archlinux.org/index.php/oracle

http://paperiniktips.sviluppo-siti-web.com/oracle-11g-r2-installation-ubuntu-like-solve-error-agent-nmhs-makefile/

Der Downoad der Software Oracle(TM) Database Server für Linux 64bit und Ubuntu 14.10 wurde im Februar 2015 durchgeführt.

Für Ubuntu 14.10 wird der xfce4 Desktop anstelle von Unity verwendet. Das sollte allerdings keine Voraussetzung für eine erfolgreiche Installation sein. Wer diesen schönen, schlanken Desktop installieren möchte, kann dies durch folgendes Kommando tun:

sudo apt-get install xfce4-*

Anschließend muss vor dem Login der neue Desktop ausgewählt werden (Button neben dem Login-Namen).

Voraussetzungen für die Installation:

  • eine funktionierende Ubuntu 14.10 Installation
  • eine ausreichend große Swap-Partition
  • heruntergeladene Oracle(TM) 11g2 Database Server Dateien für Linux 64bit (linux.x64_11gR2_database_1of2.zip, linux.x64_11gR2_database_2of2.zip)

Vorgehensweise:

  • als root arbeiten: sudo su -
  • Rechnernamen prüfen:  hostname ggf. Datei /etc/hosts editieren.
  • der Einfachheit halber: allen Client den Zugriff auf den Desktop erlauben: xhost + (Ist sicherheits-technisch gefährlich, gilt bis zum nächsten Reboot)
  • Benötigte Software installieren:
    • apt-get update
    • apt-get install alien autoconf automake autotools-dev binutils doxygen \ elfutils expat gawk gcc gcc-multilib g++-multilib libstdc++6:i386 ksh less libtiff5 \ libtiff5-dev lib32z1 libaio1 libaio-dev libc6-dev libc6-dev-i386 libc6-i386 \ libelf-dev libltdl-dev libmotif4 libodbcinstq4-1 libodbcinstq4-1:i386 \ libpth-dev libstdc++5 lsb-cxx make \ pdksh openssh-server rlwrap rpm sysstat unixodbc unixodbc-dev x11-utils \ zlibc libglapi-mesa:i386 libglu1-mesa:i386 libqt4-opengl:i386 \ libpthread-workqueue0 libpthread-workqueue-dev libzthread-2.3-2 libzthread-dev \ libpthread-stubs0-dev

  • Symbolische Links erstellen
    • ln -s /usr/bin/awk /bin/awk ln -s /usr/bin/basename /bin/basename
    • ln -s /usr/lib/x86_64-linux-gnu /usr/lib64 cd /lib64 ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 .

  • Benutzer und Grupper erstellen
    • groupadd -g 502 oinstall groupadd -g 503 dba groupadd -g 504 oper groupadd -g 505 asmadmin useradd -u 502 -g oinstall -G dba,asmadmin,oper -s /bin/bash -m oracle passwd oracle

  • Verzeichnisse erstellen:
    • mkdir -p /u01/app/oracle/product/11.2.0/ chown -R oracle:oinstall /u01 chmod -R 775 /u01

  • Entpacken der Oracle-Zip-Dateien in ein Verzeichnis, dass dem User oracle gehört, z.B. /u01/oradisks

  • Kernel-Parameter in der Datei /etc/sysctl.conf ergänzen:
    • #### Oracle 11g Kernel Parameters #### fs.suid_dumpable = 1 fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 536870912 kernel.shmmni = 4096 # semaphores: semmsl, semmns, semopm, semmni kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default=4194304 net.core.rmem_max=4194304 net.core.wmem_default=262144 net.core.wmem_max=1048586
    • Falls einkommentiert, müssen die folgenden Werte auskommentiert werden (war bei mir nicht notwendig)
    • ## Comment out
      #net.bridge.bridge-nf-call-ip6tables = 0
      #net.bridge.bridge-nf-call-iptables = 0
      #net.bridge.bridge-nf-call-arptables = 0


  • Die Datei /etc/security/limits.conf editieren:
    • #### oracle User Settings 4 Oracle 11g #### oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240

  • Die neuen Einstellungen laden:
    /sbin/sysctl -p

  • als User oracle den Installer starten:
    • cd <VZ in das die Oracle-Dateien entpackt wurden>/database ./runInstaller
    • Der Installer sollte nun starten. Mein Vorgehen war es die Installation ohne Erstellung einer DB durchzuführen und die DB anschließend mit dbca zu erstellen. Eine andere Vorgehensweise wurde nicht getestet.
    • Der Installer wird die Umgebung bemängeln. Diese Mängel können ignoriert und die Installation fortgesetzt werden.
    • Den Pfad von Oracle-Base merken!
    • Die Installation fortführen ... bis der erste Fehler auftaucht. Auf der Fehlermeldung wird eine Log-Datei angezeigt, deren Pfad kopiert wird und in einer anderen Konsole (als root oder oracle-User) geöffnet wird. 
    • In den letzten 10-20 Zeilen der Log-Datei sollte folgender Fehler angezeigt werden:
    • ... ... /usr/lib/x86_64-linux-gnu/libstdc++.so.5: undefined memcpy@GLIBC_2.14 ...
    • Diese Fehler wird ignoriert und die Installation fortgeführt.
    • Gleich im Anschluss erscheint die nächste Fehlermeldung. Es wird wieder die angezeigte Log-Datei geöffnet (die selbe, wie beim ersten Mal - Achtung: Datei neu lesen!) und in den letzten 10-20 Zeilen sollte folgender Fehler sichtbar sein:
    • ... ... nmectlt.c:(..): undefined reference to B_DestroyKeyObject ...
    • Diese Fehler taucht mehrmals auf.
    • Nun wird eine neue Konsole geöffnet.
    • sudo su - oracle # Add the oracle environment variables export ORACLE_BASE=<your Oracle Base directory entered during installation> export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib export PATH=$PATH:$ORACLE_HOME/bin ## Die Export-Befehle am besten in die .bashrc Datei von Oracle schreiben ## und "sourcen" (source .bashrc) ## Das ist Voodoo :) und nicht von mir - siehe Links am Anfang der Anleitung... sed -i 's/^\(\s*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g' $ORACLE_HOME/sysman/lib/ins_emagent.mk sed -i 's/^\(ORACLE_LINKLINE.*\$(ORACLE_LINKER)\) \(\$(PL_FLAGS)\)/\1 -Wl,--no-as-needed \2/g' $ORACLE_HOME/rdbms/lib/env_rdbms.mk sed -i 's/^\(\$LD \$LD_RUNTIME\) \(\$LD_OPT\)/\1 -Wl,--no-as-needed \2/g' $ORACLE_HOME/bin/genorasdksh sed -i 's/^\(\s*\)\(\$(OCRLIBS_DEFAULT)\)/\1 -Wl,--no-as-needed \2/g' $ORACLE_HOME/srvm/lib/ins_srvm.mk sed -i 's/^\(TNSLSNR_LINKLINE.*\$(TNSLSNR_OFILES)\) \(\$(LINKTTLIBS)\)/\1 -Wl,--no-as-needed \2/g' $ORACLE_HOME/network/lib/env_network.mk
    • Die Kommandos geben keine Ausgabe. Es erscheint jeweils nur das Prompt.

    • Im Fehlermeldungsfenster des Oracle-Installers wird auf Wiederholen geklickt und die Installation sollte ohne weitere Fehlermeldungen durchlaufen.

Der mit Ubuntu 14.10 inkompatible Teil der Installation ist damit überwunden und die Installation kann wie gewohnt fortgeführt werden.

Viel Erfolg.

Last modified by Administrator on 2015/02/22 20:06
GDBUtil
A Java based generic database utility with configurable content. Database browsing, charts, console, etc. Visit...
PLSQLLOG
A logging framework for the Oracle© database. Visit...
ERMT
An entity relationship modelling tool. Visit...

This wiki is licensed under a Creative Commons 2.0 license
XWiki Enterprise 2.0.2.24645 - Documentation