Pour des raisons professionnelles (ou par curiosité) , vous pouvez être amené à devoir installer Oracle sur votre Debian. Cet article décrit les différentes étapes pour réaliser cette opération.

1. Pré-requis hardware

Au niveau de la mémoire physique, Oracle conseille au minimum 1024 Mo. Pour estimer la mémoire physique dsiponible sur votre machine, lancer la commande suivante :
$ grep MemTotal /proc/meminfo
MemTotal:       516684 kB

Pour ma part, je n'ai qu'environ 512 Ko mais cela conviendra en augmentant la swap.

Au niveau de la swap, il est conseillé d'avoir 1,5 fois la taille de la mémoire physique si celle-ci est comprise entre 1024 et 2048 Mo.
$ grep SwapTotal /proc/meminfo
SwapTotal:     1550232 kB

1.5 Mo de swap devrait également nous suffire même si notre système est un peu solicité.

Concernant l'espace disque, je vous conseille d'avoir une partition propre pour Oracle.
Il faut disposer d'envrion 4 Go.
df -k [votre point de montage] pour savoir l'espace occupé sur votre partition
$ df -k .

Il faut aussi avoir 400 Mo de libre sous /tmp. Pour ma part /tmp étant sous le filesystem /, je n'ai pas
assez de place. Dans ces cas là, nous positionnerons les variables TEMP et TMPDIR sur un autre répertoire
pour ques les fichiers temporaires lors de l'installation se placent ailleurs. Nous verrons ça plus tard.

2. Installation des packages nécessaire

Controler que les packages suivants sont bien installés :
cpp-3.3 g++ g++-3.3 g++-4.1 gcc gcc-3.3 gcc-3.3-base gcc-4.1 lesstif2 libaio1 libbeecrypt6 libc6-dev libdb3 libneon25 librpm4  libssp0 libstdc++5 libstdc++5-3.3-dev libstdc++6-4.1-dev linux-kernel- headers rpm unzip sudo

Dans le cas contraire, apt-get install [nom du package]

3. Paramètrer votre système

Ajouter la ligne suivante dans votre fichier /etc/pam.d/login
session    required     /lib/security/pam_limits.so

Créer les liens suivants :
# ln -s /usr/bin/awk /bin/awk
# ln -s /usr/bin/rpm /bin/rpm

# ln -s /usr/bin/basename /bin/basename

Créer un fichier redhat-release pour faire croire que le système est une redhat et non une debian.
En effet, Oracle n'est certifié que sur les serveurs Redhat et Suze.
# echo « Red Hat Linux release 3.0 (drupal) » > /etc/redhat-release

Initialiser la gestion des rpm :
# mkdir /var/lib/rpm
# rpm --initdb
# rpm --rebuilddb

Modification des fichiers systèmes :
Faire une sauvegarde de votre fichier /etc/sysctl.conf
Editer votre fichier /etc/sysctl.conf et ajouter les lignes suivantes :
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144

Pour la prise en compte dynamique de ces paramètres, faites la commande suivante :
# /sbin/sysctl -p

Faire une sauvegarde du fichier /etc/security/limits.conf
Editer le fichier /etc/security/limits.conf et ajouter les lignes suivantes :
*               soft    nproc   2047
*               hard    nproc   16384
*               soft    nofile  1024
*               hard    nofile  65536

Comme nous allons utiliser le bash pour l'utilisateur Oracle, ajouter les lignes suivantes dans le fichier  /etc/profile
if [ $USER = «oracle» ]; then
ulimit -u 16384 -n 65536
fi

4. Création des groupes et users nécessaires à l'installation et l'utilisation d'oracle

- Création du groupe oinstall (groupe Oracle Inventory), dba, nobody et 
# /usr/sbin/groupadd oinstall
# /usr/sbin/groupadd dba
# /usr/sbin/groupadd nobody

- Modification du user nobody pour qu'il appartienne au groupe nobody
# usermod -g nobody nobody

- Création  de l'utilisateur oracle
# useradd -d /oracle/home -g oinstall -G dba -s /bin/bash oracle

Création des répertoires d'installation :
# mkdir -p /oracle/home
# mkdir -p /oracle/u01/app/oracle/product
#  mkdir -p /oracle/u01/app/oracle/oraInventory
# mkdir -p /oracle/u01/oradata
# mkdir -p /oracle/install

- Changement du propriétaire et du groupe sur les différents répertoires :
# chown -R oracle:oinstall /oracle/home /oracle/u01 /oracle/install

- Ajout des droits nécessaires sur le répertoire /oracle/u01
# chmod -R 775 /oracle/u01

- Création de l'environnement oracle :
Se Connecter avec le user oracle
# su - oracle

Créer un fichier .bashrc sous /oracle/home
PS1=’[\u sur \h] \w :’
umask 022
unset USERNAME
export ORACLE_BASE=/oracle/u01/app/oracle
export ORACLE_HOME=/oracle/u01/app/oracle/product
export ORACLE_SID=orcl #orcl coorespond au nom de notre future base de donnée
export ORACLE_TERM=xterm
export PATH=/oracle/u01/app/oracle/product/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export ORATAB=/etc/oratab
export ORACLE_HOME_LISTENER=$ORACLE_BASE

Si vous n'avez pas assez de place sous /tmp c'est à dire 400 Mo ajouter ces deux variables dans le fichier .bashrc :
export TEMP=/oracle/tmp
export TMPDIR=/oracle/tmp

Créer le répertoire /oracle/tmp avec un accès en lecture/écriture pour le user oracle

# Créer le lien suivant pour que les variables soient prises en compte à la connexion :
$ ln -s .bashrc .bash_profile

5. Installation d'Oracle 10g release 2

Sur le site d'oracle, téléchargez les fichiers suivants :
10201_database_linux32.zip (pour notre moteur oracle)
10201_client_linux32.zip (si vous désirez installer le client oracle, optionnel)

Placer les fichiers sous /oracle/install
Les faire appartenir à oracle (groupe oinstall)
# chown oracle:oinstall 10201_database_linux32.zip 10201_client_linux32.zip

Se connecter en oracle et décompresser le fichier :
# su - oracle
$ cd /oracle/install
$ unzip 10201_database_linux32.zip

Maintenant connectez-vous sous X avec l'utilisateur Oracle.
Après cela, aller dans le répertoire /oracle/install/database.
$ cd /oracle/install/database

Lancer le script :
$ ./runInstaller

Votre installation débute :
Ecran n°1 :
1

Ecran n°2 :
2

Ecran n°3 :
3

Ecran n°4 :
4

Ecran n°5 :
5

Ecran n°6 :
6
Ici, vous cliquez sur Gestion des mots de passe si vous voulez modifier un mot de passe par défaut :

Ecran n°7 (changement du mot de passe du user HR):
7

Ecran n°8 :
8

Attention, ici, il faut se connecter en root dans un terminal et lancer les 2 commandes ci-dessous :
# cd /oracle/u01/app/oracle/oraInventory
# ./orainstRoot.sh
Modification des droits d'accès de /oracle/u01/app/oracle/oraInventory en 770.
Modification du nom de groupe de /oracle/u01/app/oracle/oraInventory en oinstall.
L'exécution du script est terminée

# cd /oracle/u01/app/oracle/product
# ./root.sh

Running Oracle10 root.sh script...

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /oracle/u01/app/oracle/product

Enter the full pathname of the local bin directory: [/usr/local/bin]:
Creating /usr/local/bin directory...
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...


Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.

Ecran n°9 :
9

Voilà vous pouvez quitter, votre installation est terminée.

Pour lancer Oracle Entreprise Database Control (OEM anciennement) :
# su - oracle
$ $ORACLE_HOME/bin/emctl start dbconsole


Vous pouvez ensuite vous connecter en http :
http://localhost:1158/em

Et voici ce que ça donne. C'est quand même mieux que la version XE Edition ;-)
11