Mit ein paar Hacks funktioniert es: Oracle XE 11.2 unter Ubuntu 11.10

Mit ein paar Hacks funktioniert es: Oracle XE 11.2 unter Ubuntu 11.10

Rate This
  • Comments 7

Die Oracle Express Edition 11.2 ist verfügbar, ebenso Ubuntu 11.10. Also versuchen wir mal, beides zusammen zum Laufen zu bringen.
Leider klappte es bei mir nicht so, wie ich es in einem früheren Blog-Eintrag beschrieben habe.

Aber mit den Tipps von

hat es dann bei mir funktioniert.

Wir starten mit einer virtuellen Maschine mit

  • 1,5 GB RAM
  • 12 GB HD, davon 2 GB als Swap-Partition
  • Verbindung ins Internet.

und machen erst einmal eine Standard-Ubuntu-Installation von Ubuntu 11.10  (64 bit).

Dann installieren wir ein paar zusätzliche Pakete:

> sudo apt-get install alien
> sudo apt-get install libaio1
> sudo apt-get install unixodbc
> sudo apt-get install sysv-rc-conf
> sudo apt-get install openssh-server

Der openssh-server ist für die Oracle-XE nicht unbedingt erforderlich, aber standardmäßig ist kein SSH-Server installiert. Und wenn wir mit ssh auf unseren Datenbankserver wollen, dann brauchen wir auch einen passenden Server dafür.

Im nächsten Schritt holen wir uns die XE-Software vom Oracle-Technet und bringen das ZIP-File auf unsere ubuntu-Maschine.

Auspacken der ZIP-Datei und Umwandeln in ein Debian-Package:
> sudo unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip
> cd Disk1
> sudo alien --d –-scripts  oracle-xe-11.2.0-1.0.x86_64.rpm

(Ein Leser des Blog-Eintrages „XE 11.2-Beta auf Ubuntu“ schreibt, dass er Probleme mit der Umwandlung via alien hat. Das Problem konnte ich aber nicht nachvollziehen).

Jetzt kommt

Hack 1: - Wir bauen uns ein /sbin/chkconfig-file

Das Package erwartet bei der Installation ein /sbin/chkconfig-Skript, aber unter Ubuntu gibt es keines. Also schreiben wir uns ein passendes Skript:

> sudo vi /sbin/chkconfig


mit folgendem Inhalt:

#!/bin/bash
# Oracle 11gR2 XE installer chkconfig hack for Debian by Dude
file=/etc/init.d/oracle-xe
if [[ ! `tail -n1 $file | grep INIT` ]]; then
   echo >> $file
   echo '### BEGIN INIT INFO' >> $file
   echo '# Provides:             OracleXE' >> $file
   echo '# Required-Start:       $remote_fs $syslog' >> $file
   echo '# Required-Stop:        $remote_fs $syslog' >> $file
   echo '# Default-Start:        2 3 4 5' >> $file
   echo '# Default-Stop:         0 1 6' >> $file
   echo '# Short-Description:    Oracle 11g Express Edition' >> $file
   echo '### END INIT INFO' >> $file
fi
update-rc.d oracle-xe defaults 80 01


Dann noch

> sudo chmod 755 /sbin/chkconfig
> sudo ln -s /bin/bash /bin/ksh

Installieren des Oracle-XE-Packages

> sudo dpkg -i  oracle-xe-11.2.0-1.0.x86_64.deb

Bevor wir jetzt Oracle konfigurieren, kommt

Hack 2 (von www.fseitz.de):
Für Oracle muss der Mountpoint für das Shared Memory /dev/shm sein und nicht wie bei ubuntu /run/shm. /dev/shm gibt es zwar auch – es ist ein symbolic link auf /run/shm – aber das reicht Oracle nicht.

Also ändern wir die Oracle binaries:
> cd /u01/app/oracle/product/11.2.0/xe/bin
> sudo cp oracle oracle.bak
> sudo sed 's|/dev/shm|/run/shm|g' oracle.bak >/tmp/oracle
> sudo cp /tmp/oracle .
> sudo chown oracle:dba oracle
> sudo chmod 6751 oracle 


Und jetzt geht es ganz normal weiter:

markus@ubuntu64:/u01/app/oracle/product/11.2.0/xe/bin$ sudo /etc/init.d/oracle-xe configure

Oracle Database 11g Express Edition Configuration
-------------------------------------------------
This will configure on-boot properties of Oracle Database 11g Express
Edition.  The following questions will determine whether the database should
be starting upon system boot, the ports it will use, and the passwords that
will be used for database accounts.  Press <Enter> to accept the defaults.
Ctrl-C will abort.

Specify the HTTP port that will be used for Oracle Application Express [8080]:

Specify a port that will be used for the database listener [1521]:

/etc/init.d/oracle-xe: line 405: /bin/awk: No such file or directory
Specify a password to be used for database accounts.  Note that the same
password will be used for SYS and SYSTEM.  Oracle recommends the use of
different passwords for each database account.  This can be done after
initial configuration:
Confirm the password:

Do you want Oracle Database 11g Express Edition to be started on boot (y/n) Yes:

Starting Oracle Net Listener...touch: cannot touch `/var/lock/subsys/listener': No such file or directory
Done
Configuring database...Done
Starting Oracle Database 11g Express Edition instance...Done
Installation completed successfully.

Die Fehlermeldung beim Starten des Listeners kann ignoriert werden.

Dann noch aufräumen:

> sudo rm /sbin/chkconfig
> sudo rm /tmp/oracle


Anschließend noch mittels „sudo sysv-rc-conf“ den Service oracle-xe für die runlevel 2 - 5 aktivieren, damit Datenbank und Listener beim Systemstart automatisch gestartet werden und fertig ist die Installation.

Alles ist natürlich hochgradig unsupported Smile.


Wer will, kann jetzt in einem nächsten Schritt noch APEX auf die aktuelle Version 4.1 upgraden. Das läuft dann aber ganz standardmäßig, fast schon langweilig. Man verliert dadurch zwar die Web-Admin-Oberfläche für die XE-Datenbank, die mit XE 11.2 mitgeliefert wird. Das ist aber meiner Ansicht nach zu verschmerzen, denn der SQL-Developer bietet immer mehr Features zur Datenbank-Administration (siehe z.B. diesen Beitrag in der Oracle-DBA-Community).





Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment
  • Post
  • Ich war der EINE Leser bei dem es nicht funktionierte :-)

    Nun läuft es, danke für die tolle Anleitung.

    Aber: Der Aufruf von alien funktionier nicht mit -scripts sondern nur mit --scripts.

    Und: Das .deb file konnte von dpkg nicht installiert werden, wohl aber mit dem Ubuntu Software Center vom GUI aus.

  • Ja der Befehl sollte nicht

    > sudo alien --d –scripts  oracle-xe-11.2.0-1.0.x86_64.rpm

    sondern

    > sudo alien -d --scripts  oracle-xe-11.2.0-1.0.x86_64.rpm

    lauten. Ansonsten bin ich jetzt erstmal weiter die Hacks durchgehen.

     

     

    ---

    Kommentar:

    Ist korrigiert.

  • Woran kann es liegen, dass beim Versuch sich aus dem SQL Developer zu verbinden folgende Fehlermeldung erscheint?:

    An error was encountered performing the requested operation:

    Listener refused the connection with the following error:

    ORA-12505, TNS:listener does not currently know of SID given in connect descriptor

    Vendor code 12505

     

     

    ----

    Möglicherweise haben Sie die falschen Verbindungsdaten (Host, ORACLE_SID) angegeben. Die ORACLE_SID muss XE sein.

    Weitere Hinweise zu diesem Fehler gibt es auch unter https://forums.oracle.com/forums/thread.jspa?threadID=2265906

     

    Gruss

    Markus Flechtner

  • Mit Ubuntu 12.04 LTS ist noch vor dem configure

    sudo mkdir /var/lock/subsys

    sudo mkdir /u01/app/oracle/diag

    notwendig. Vielen Dank für die Anleitung.

    Gruß,

    Martin.

  • Da kommt Freude auf ... eine Anleitung welche man zu100% übernehmen kann. Sie funktioniert auch unter Ubuntu 12.10.  

    Vielen Dank hierfür, Gruss

     Uli

  • Erstmal vielen Dank für die super Anleitung!

    Ein Hinweis zu dem erwähnten Problem mit alien:

    Ich hatte auch ein Problem bei der Ausführung der Schritte dieser Anleitung, wo mir alien meldete:

    ~/Downloads/Disk1$ sudo alien --to-deb --scripts oracle-xe-11.2.0-1.0.x86_64.rpm

    error: db5 error(-30969) from dbenv->open: DB_VERSION_MISMATCH: Database environment version mismatch

    error: cannot open Packages index using db5 -  (-30969)

    ... und diverse gleiche Meldungen zu anderen Dateinamen ...

    Jetzt kenne ich auch den Grund. Ich hatte versucht, Oracle zuvor zu installieren und wurde beim Einsatz von alien darauf hingewiesen, dass meine Linux-Variante nicht zu dem zu installierenden Paket paßt - mein Ubuntu war eine 32-Bit Version von Ubuntu 12.04 ...

    Also habe ich kurzentschlossen die 64-Bit Version von Ubuntu 12.10 installiert und dabei die /home Partition nicht neu formatiert, um die bislang erzeugten persönlichen Dateien zubehalten.

    Das hat auch reibungslos funktioniert, allerdings ist damit auch ein Verzeichnis .rpmdb in meinen home stehen geblieben, was wohl Daten aus dem ersten Versuch der Oracle-Installation beinhaltet (war am Zeitstempel deutlich zu erkennen)!

    Vermutlich kann der Paketmanager von 12.10 nicht mit Dateien von 12.04 umgehen oder die Dateien der 32-Bit-Variante nicht mit denen der 64-Bit-Variante.

    Wie dem auch sei: Da offensichtlich das Verzeichnis .rpmdb das Problem darstellte, habe ich es umbenannt und den Schritt mit alien nochmal ausgeführt.

    Siehe da: Es geht!

    Vielleicht hilft das ja ein paar Leuten, die genauso naiv da ran gehen wie ich :-).

    Gruß,

    Thomas.

  • Auch von mir vielen Dank für die sehr hilfreiche Anleitung und Kommentare, XE läuft nun auf Ubuntu 12.04.

Page 1 of 1 (7 items)
Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment
  • Post