Cette fiche présente l'installation d'Oracle 10g sous Linux Ubuntu 10.04. Elle fonctionne aussi sous Debian à condition d'activer le dépot non-free ( ou de charger manuellement libmotif3 )

Debian

Si on part d'une installation basique de Debian, il faut charger en plus xorg et libxp6

aptitude install xorg libxp6

Télécharger, libmotif3 depuis le site debian, non-free et installer par dpkg -i

wget http://ftp.fr.debian.org/debian/pool/non-free/o/openmotif/libmotif3_2.2.3-4_i386.deb
dpkg -i libmotif3_2.2.3-4_i386.deb

Sous Ubuntu cette étape n'est pas utile.

Lien interessant : http://www.excession.org.uk/blog/in...

L'installation de Oracle doit se faire en mode graphique, si le serveur ne dispose pas de graphique, il est possible d'effectuer simplement ceci depuis un poste client via ssh en mode X en se connectant ainsi :

ssh -X oracle@serveur_ubuntu

Prérequis

Le plus simple est de passer sous le compte root ainsi :

sudo -s

Installer les packages suivants :

aptitude install build-essential libaio1 gawk 
ksh libmotif3 alien libtool lsb-rpm

Il est nécessaire de mettre à jour le sh pour le changer en bash. Pour ce faire il suffit de procéder comme suit :

# cd /bin
# ls -l /bin/sh
lrwxrwxrwx 1 root root 4 2008-04-28 19:59 /bin/sh -> dash
# ln -sf bash /bin/sh
# ls -l /bin/sh
lrwxrwxrwx 1 root root 4 2008-05-01 22:51 /bin/sh -> bash

Préparer l'environnement du user Oracle

Ajouter les groupes oinstall, dba, nobody

# addgroup oinstall
# addgroup dba
# addgroup nobody

Ajouter le user oracle et lui donner un mot de passe.

# useradd -g oinstall -G dba -p password 
-d /home/oracle -s /bin/bash oracle
# passwd oracle

Créer la home directory du user oracle

# mkdir /home/oracle
# chown -R oracle:dba /home/oracle

Oracle étant prévu sur des distribution RedHat, il faut créer certains liens symboliques pour des raisons de compatibilité :

# ln -s /usr/bin/awk /bin/awk
# ln -s /usr/bin/rpm /bin/rpm
# ln -s /usr/bin/basename /bin/basename
# mkdir /etc/rc.d
# for i in 0 1 2 3 4 5 6 S 
      do ln -s /etc/rc$i.d /etc/rc.d/rc$i.d
   done

Il y a une erreur sans gravité lors de l'installation :

Error in invoking target 'all_no_orcl' of makefile 'ins_rdbms.mk'

Afin de l'éviter il suffit de créer le lien symbolique suivant : Ubuntu 10.04

sudo ln -s /usr/lib/libstdc++.so.6.0.10 /usr/lib/libstdc++.so.5

Ubuntu 10.10

sudo ln -s /usr/lib/libstdc++.so.6.0.14 /usr/lib/libstdc++.so.5

Initialiser la gestion des rpm :

rpm --initdb
rpm --rebuilddb

Création d’ORACLE_BASE

# mkdir -p /u01/app/oracle
# chown -R oracle:dba /u01

Paramétrage du noyau linux

Rajouter les lignes suivantes dans /etc/sysctl.conf

fs.file-max = 65535
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 1024 65535
net.core.rmem_default = 1048576
net.core.rmem_max = 1048576
net.core.wmem_default = 262144
net.core.wmem_max = 262144

Activer la configuration par la commande suivante :

# sysctl -p

Rajouter les lignes suivantes dans /etc/security/limits.conf

oracle soft nproc 2047
oracle hard nproc 16383
oracle soft nofile 1023
oracle hard nofile 65535

Faire croire qu'il s'agit d'une redhat

echo "Red Hat Enterprise Linux ES release 3 (Taroon Update 4)" > /etc/redhat-release

Installation des binaires Oracle

Se connecter avec le user Oracle et lancer le runInstaller en courcircuitant le contrôle des prérequis.

# ./runInstaller 

Suivre l'assistant graphique, l'erreur de compilation peut être ignorée sans difficulté.

Il faudra lancer en tant que root deux scripts ( orainstRoot.sh et root.sh ).

Une fois l'installation terminée, rajouter les lignes suivantes dans le fichier /etc/profile et redémarrer le serveur.

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export ORACLE_OWNR=oracle
export NLS_LANG=french_france.utf8
export PATH=$PATH:$ORACLE_HOME/bin

Lancement des utilitaires

  • Création de base : dbca
  • Assistant Oracle*NET : netca
  • Manager Oracle*NET : netmgr
  • Database control : emctl ( emctl start|stop dbconsole )
  • Listener : lsnrctl