You are on page 1of 13

Résumé

Le célèbre SGBDR Oracle est disponible dans sa version 10g depuis le mois de Février 2004. Cet article a
pour objectif de vous aider dans la procédure d'installation, souvent complexe, du SGBD sous système
GNU/Linux. Se basant essentiellement sur l'exemple d'une installation sous Debian SID, l'article se
voudra néanmoins le plus ouvert possible pour faciliter son adaptation à d'autres distributions.

Sommaire

Introduction

1. Préparatif
1.1. Prérequis
1.2. Paramètres noyau
1.3. Paramètres systèmes
1.4. Utilisateurs et groupes
1.5. Système de fichiers
1.6. Environnement de l'utilisateur oracle
2. Installation
2.1. Installation des logiciels requis
2.2. Téléchargement de l'archive d'installation
2.3. Faire diversion
2.4. Installation d'Oracle
3. Post-Installation
3.1. Lancer et arrêter le serveur
3.2. Outils Oracle
Conclusion

Introduction

Depuis le mois de février 2004, la nouvelle version du célèbre SGBDR Oracle est disponible: Oracle
Database 10g. Cette nouvelle version apporte bien entendu des nouveautés comme l'apparition de l'ASM
pour Automatic Storage Management (fini les fastidieux redimensionnements de tablespace) ou un tout
nouveau Enterprise Manager qui a abandonné le couple Java/Swing au profit d'une interface Web.

Comme a son habitude, Oracle propose cette version en libre téléchargement pour un usage strictement
privé sur http://otn.oracle.com (nécessite une inscription). La version Unix/Linux est d'ores et déjà
disponible sur le site.

Le but de cet article, vous l'aurez compris, est de vous aider à installer Oracle Database 10g sur votre
système Linux. L'article se voudra le plus généraliste possible en essayant dans la plupart des cas de
proposer des solutions pour différentes distributions même s'il a été rédigé à partir d'une installation sur
Debian SID.

1. Préparatif

1.1. Prérequis
Oracle est comme à son accoutumée trés gourmand en ressources système. En effet, la documentation
recommande les spécifications matérielles minimales suivantes:

Valeur
Items Commande
minimale
grep MemTotal
Mémoire physique 512 Mo
/proc/meminfo
grep SwapTotal
Fichier d'échange (SWAP) 1 Go
/proc/meminfo
Espace libre temporaire (/tmp) 400 Mo df -h /tmp
Espace libre pour l'application 2,5 Go df -h /
Espace nécessaire à la création d'un base
1,2 Go df -h /
de données

Comme vous le voyez les spécifications matérielles requises sont relativement importantes surtout au
niveau mémoire vive et taille du fichier d'échange. Si vous disposez de plusieurs disques durs, le mieux
serait d'avoir une partition ou un fichier d'échange sur le disque le plus rapide.

Pour information, la machine qui sert de support à cet article est un portable IBM T40P, 512 Mo de
mémoire vive, avec un disque dur de 40 Go dont un total de 1,7 Go de swap.

Si vous pensez être un peu limite au niveau mémoire disponible (mémoire vive un peu juste ou partition
swap trop petite) vous pouvez augmenter la quantité de mémoire disponible de 2 manières:

 Utiliser une partition d'un autre disque dur pour en faire une partition d'échange.
Pour cela créer une partition de type swap dans votre système de fichiers et montez là
dynamiquement via la commande :

# swappon <device>.

Vous pouvez dans ce cas démonter manuellement la partition avec la commande:

# swapoff <device>.

 Créer un fichier d'échange qui fonctionnera sur le même principe que la partition d'échange mais
qui vous évitera un partitionnement inutile:
Pour cela, on va créer un fichier temporaire de swap comme indiqué :

# su - root
# dd if=/dev/zero of=tmpswap bs=1k count=900000
# chmod 600 tmpswap
# mkswap tmpswap
# swapon tmpswap

Vous avez maintenant un fichier tmpswap qui fait office de partition d'échange.

Il est également bon de préciser que la présence d'un serveur graphique est obligatoire pour l'installation
contrairement aux versions précédentes.

1.2 Paramètres noyau


Il est nécessaire de modifier les paramètres du noyau pour qu'ils répondent aux spécifications du tableau
suivant :

Paramètre Valeur Fichier


semmsl 50
semmns 32000
/proc/sys/kernel/sem
semopm 100
semmni 128
shmall 209715 /proc/sys/kernel/shmall
shmmax Moitié de la RAM /proc/sys/kernel/shmmax
shmmni 4096 /proc/sys/kernel/shmmni
file-max 65536 /proc/sys/fs/file-max
ip_local_port_range 1024 65000 /proc/sys/net/ipv4/ip_local_port_range
Vous pouvez récupèrer la valeur des paramètres ci-dessus par la commande suivante :
# /sbin/sysctl -a | grep <paramètre>
Si les valeurs trouvées ne correspondent pas aux indications précédentes, ajouter ou éditer les lignes
suivantes de votre fichier /etc/sysctl.conf :
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
Les valeurs rentrées seront alors permanentes et auront effet seulement aprés un redémarrage de la
machine. Vous pouvez appliquer les modifications immédiatement en exécutant la commande :
# /sbin/sysctl -p

1.3. Paramètres système


Il vous faut maintenant modifier certaines limites de votre système pour en augmenter les performances
sous Oracle Database 10g. En effet, bien que les paramètres par défaut conviennent pour une utilisation
personnelle, pour des bases plus importantes il convient de les modifier
Tout d'abord, ajoutez les lignes suivantes dans le fichier /etc/security/limits.conf :

* soft nproc 2047


* hard nproc 16384
* soft nofile 1024
* hard nofile 65536

Ensuite, si elle n'existe pas, ajoutez la ligne suivante dans le fichier /etc/pam.d/login :
session required /lib/security/pam_limits.so
Enfin, étendez les propriètés de votre shell pour l'utilisateur oracle (nous verrons plus tard comment
créer cet utilisateur):

 Si vous êtes dans un environnement bash (la plupart des cas), ajoutez les lignes suivantes à
votre fichier /etc/profile :
 if [ $USER = "oracle" ]; then
 if [ $SHELL = "/bin/ksh" ]; then
 ulimit -p 16384
 ulimit -n 65536
 else
 ulimit -u 16384 -n 65536
 fi
 fi

 Si vous disposez d'un shell C ou tcsh, ajoutez les lignes suivantes dans le fichier /etc/csh.login :
 if ( $USER == "oracle" ) then
 limit maxproc 16384
 limit descriptors 65536
 endif

1.4. Utilisateurs et groupes


Pour fonctionner, Oracle nécessite la création de l'utilisateur oracle et des groupes dba et oinstall. Vous
pouvez les créer soit à l'aide d'un outil graphique (kuser, gnome-system-tools, ...) soit avec les
commandes listées ci-dessous :
 Le groupe oinstall est le propriétaire des fichiers installés par Oracle. Pour le créer, entrez la
commande suivante en root :

# /usr/sbin/groupadd oinstall

 Le groupe dba est le propriétaire de la base de données. Créez-le avec la commande suivante :

# /usr/sbin/groupadd oinstall

 Enfin créez l'utilisateur oracle qui correspondra au compte sous lequel Oracle Database 10g
s'exécutera. Vous devez faire attention à ce que le groupe dba soit le groupe principal de
l'utilisateur oracle:

# /usr/sbin/useradd -g oinstall -G dba oracle

N'oubliez pas d'attribuer un mot de passe à votre utilisateur oracle:

# passwd oracle

1.5. Système de fichiers


Oracle a publié un guide de bonne conduite qui vise à augmenter ses performances sur systèmes Unix:
les règles OFA (Optimal Flexible Architecture). Vous pouvez vous y conformer en créant les répertoires
suivants en root:
# mkdir -p /u01/app/oracle
# chown -R oracle.oinstall /u01
# chmod -R 775 /u01/

# mkdir -p /u02/oradata/test
# chown -R oracle.oinstall /u02
# chmod -R 775 /u02/<
Le répertoire /u02 n'est pas nécessaire, mais il peut être avantageux de séparer les données de
l'application de la base de données en elle-même. Le répertoire /u02/oradata/test sera donc le repertoire
où se trouve les fichiers de données de la base de données test. Dans un souci de performance,
mettez /u01 et /u02 sur des disques durs différents.

1.6. Environnement de l'utilisateur oracle


L'installation étant lancée par l'utilisateur oracle, on a besoin de deux variables d'environnement :
$ORACLE_BASE qui correspond au répertoire d'installation du logiciel Oracle et $ORACLE_SID qui est le
nom de l'instance de la base que l'on veut crée. Pour initialiser ces variables, loguez vous en tant
qu'utilisateur oracle.
# su - oracle
Ensuite entrez les commandes suivantes pour l'initialisation des variables:
# export ORACLE_BASE=/u01/app/oracle
# export ORACLE_SID=test
Vous pouvez également créer ou éditer le fichier /home/oracle/.bash_profile et y entrer les lignes
suivantes:
ORACLE_BASE=/u01/app/oracle
ORACLE_SID=data
export ORACLE_BASE ORACLE_SID
Pour vérifier l'initialisation de ces variables vous pouvez utiliser la commande :
# env | grep ORACLE
D'autre part, pendant le processus d'installation les variables ORACLE_HOME et TNS_ADMIN ne doivent
pas être présentes. Pour cela, servez vous des commandes:
# unset ORACLE_HOME
# unset TNS_ADMIN

2. Installation
2.1. Installation des logiciels requis
Sous debian SID vous devez avoir les paquets suivants:

• gcc 2.95
• make
• binutils
• libc6
• libstdc++2.10-glibc2.2
• libstdc++2.10-dev
• libmotif3
• rpm
• awk

Si vous souhaitez installer Oracle sur une distribution autre que Debian sachez que certains noms de
packages sont particuliers à cette distribution. Ainsi, libc6 est plus souvent trouvé sous le nom glibc et
openmotif est prefèré à libmotif3.

Certains versions des packages sont également nécessaires. Parcourez la documentation en ligne
d'Oracle pour plus de précision. Néanmoins, il est bon de préciser qu'il est fortement recommandé d'avoir
à sa disposition une version de la glibc supérieure à 2.3.1 (c'est le cas pour Debian SID et pour la plupart
des distributions récentes). En effet, un bug récurrent dans cette version nécessitait un patch pour avoir
une installation Oracle fonctionnelle.

Pour éviter certains problèmes lors de la procédure d'installation vous devrez également exécuter les
commandes suivantes:
# ln -s /usr/bin/awk /bin/awk
# ln -s /usr/bin/rpm /bin/rpm

2.2. Téléchargement de l'archive d'installation


Oracle 10g est disponible en libre téléchargement pour un usage strictement privé.
Si ce n'est pas déjà fait, téléchargez maintenant l'archive d'installation d'Oracle en vous rendant sur
http://otn.oracle.com et en téléchargeant le fichier ship.db.cpio.gz (611,574,473 bytes) (cksum -
306399691) Vous devrez pour cela passer par une courte phase d'inscription sur le site.
Une fois l'archive récupérée usez des commandes suivantes pour décompresser l'archive:
$ gunzip ship.db.cpio.gz
$ cpio -idmv < ship.db.cpio
Vous devriez avoir maintenant un répertoire Disk1 contenant les fichiers d'installation Oracle.

2.3. Faire diversion


Oracle Database 10g est pour le moment certifié seulement pour les systèmes Redhat Linux Advanced
Server 2.1 et United Linux. La conséquence directe en ce qui nous concerne est la vérification du
système d'exploitation lors de l'installation. En effet, même si Oracle Database 10g peut fonctionner sans
problème sous d'autres systèmes que ceux certifiés, l'installateur ne voudra tout simplement pas se
lancer. Il existe néanmoins une ruse (une bidouille?) pour éviter ce petit désagrément. Tapez donc les
commandes suivantes:
# su - root
# cat > /etc/redhat-release << EOF
Red Hat Enterprise Linux AS release 3 (Taroon)
EOF
L'installateur devra maintenant considérer votre linux comme un système certifié.

Une autre méthode pour parvenir à ce résultat est de lancer le programme d'installation avec l'option
-ignoreSysPrereqs

2.4. Installation d'Oracle


Il s'agit de la phase la plus facile pour vous. En effet, il vous suffit de lancer l'installateur graphique sous
l'identité oracle. Pour cela, lancez votre environnement graphique habituel avec votre utilisateur habituel.
Ouvrez ensuite un émulateur de terminal (xterm, aterm, konsole, ...) et procédez comme suit:
$ xhost +
$ su - oracle
$ cd <répertoire_de_l'installateur>
$ ./runInstaller
L'installateur graphique Java devrait alors se lancer. Si l'application se termine subitement avant de
lancer la partie graphique vous pouvez essayer de la lancer de la manière suivante:
$ ./runInstaller -ignoreSysPrereqs
qui ignorera les vérifications au lancement de l'installateur (./runInstaller -help pour plus d'informations).
Vous devez maintenant vous retrouver devant l'écran de bienvenue de l'installateur graphique:

Le reste de la procédure n'est pas trés compliqué. Tout d'abord sélectionnez les répertoires où seront
installés l'application
Vous pouvez maintenant sélectionner votre type d'installation (Enterprise, Standard ou Personnalisée):

Pensez également à sélectionner la langue de l'installation (autre que anglais):


Aprés la phase de vérification, arrive l'étape de création de la base de données. Cette étape est
facultative et peut être relancée manuellement aprés l'installation.

Pour un usage personnel ou pour effectuer des tests prefèrez l'option "General Purpose" qui vous
permettra d'avoir une base de données fonctionnelle dès la fin de l'installation. Pensez aussi à activer
l'option "Sample schema" si vous voulez dès le départ disposer d'un lot de tests.

Une fois la base de données configurée par vos soins, le processus d'installation démarre :
Vous pourrez sans doute vous retrouver devant 2 erreurs de compilation pendant le processus
d'installation. Ignorez-les et continuez le processus d'installation :

Le reste de la procédure devrait se passer normalement. Notez cependant les 2 erreurs rpm dans la
console. N'y tenez pas compte, elles n'auront pas d'effet sur votre installation.

root.sh
Lors du processus d'installation il vous sera demandé de lancer le script root.sh. Pour cela, ouvrez un
autre terminal, loguez vous en root et lancez le script indiqué. Une fois le script terminé (peut prendre
plusieurs minutes), validez son exécution dans l'installateur et continuez la procédure d'installation.

Sous Debian, il est préferable de modifier le script pour l'adapter aux particularités du système. Pour cela
editez le script avec votre éditeur préferé et remplacez toutes les occurences de rc.d/rc#.d par rc#.d (où
# est un numéro).

Aprés environ 20 minutes d'installation vous vous retrouverez devant l'écran de résumé:
Si vous êtes arrivé à ce stade, bravo, Oracle 10g est installé sur votre système!

3. Post-Installation

3.1. Lancer et arrêter le serveur


Nous allons dans cette partie créer un script qui va nous permettre de lancer et arrêter Oracle 10g à la
volée en utilisant la commande /etc/init/oracle start|stop. Pour cela, nous aurons besoin de modifier le
fichier /etc/oratab et de créer le script approprié dans /etc/init.d.

/etc/oratab
Tout d'abord, éditez le fichier /etc/oratab. Ce fichier indique au serveur Oracle quelle base de données
devra être démarrée lorsque la commande dbstart() sera lancée. La syntaxe est la suivante:
SID:ORACLE_HOME:AUTO_START
où SID est l'identifiant de la base de données (celui que vous avez donné à l'installation), ORACLE_HOME
le répertoire d'installation d'Oracle, et AUTO_START une variable qui prendra Y si vous voulez un
démarrage automatique et N dans le cas contraire. Un exemple de configuration:
data:/u01/app/oracle/product/10.1.0/db_1:N
qui signifie que la base dont le SID est data ne devra pas démarrer automatiquement.

Le script
Maintenant créez le fichier /etc/init.d/oracle dont le contenu est la suivant:
#!/bin/bash
#
# Run-level Startup script for the Oracle Instance and Listener
#
# chkconfig: 345 91 19
# description: Startup/Shutdown Oracle listener and instance

ORA_HOME="/u01/app/oracle/product/10.1.0/db_3"
ORA_OWNR="oracle"

# if the executables do not exist -- display error

if [ ! -f $ORA_HOME/bin/dbstart -o ! -d $ORA_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi

# depending on parameter -- startup, shutdown, restart


# of the instance and listener or usage display

case "$1" in
start)
# Oracle listener and instance startup
echo -n "Starting Oracle: "
su - $ORA_OWNR -c "$ORA_HOME/bin/lsnrctl start"
su - $ORA_OWNR -c $ORA_HOME/bin/dbstart

#Optional : for isqlplus only


su - $ORA_OWNR -c "$ORA_HOME/bin/isqlplusctl start"
#Optional : for Enterprise Manager software only
su - $ORA_OWNR -c "$ORA_HOME/bin/emctl start dbconsole"

touch /var/lock/subsys/oracle
echo "OK"
;;
stop)
# Oracle listener and instance shutdown
echo -n "Shutdown Oracle: "

#Optional : for isqlplus only


su - $ORA_OWNR -c "$ORA_HOME/bin/isqlplusctl stop"
#Optional : for Enterprise Manager software only
su - $ORA_OWNR -c "$ORA_HOME/bin/emctl stop dbconsole"

su - $ORA_OWNR -c "$ORA_HOME/bin/lsnrctl stop"


su - $ORA_OWNR -c $ORA_HOME/bin/dbshut
rm -f /var/lock/subsys/oracle
echo "OK"
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 start|stop|restart|reload"
exit 1
esac
exit 0
Rendez ensuite le script exécutable grâce à la commande:
# chmod u+x /etc/init.d/oracle
Vous pouvez maintenant démarrer et arrêter le serveur Oracle à l'aide des commandes:
$ /etc/init.d/oracle start
$ /etc/init.d/oracle stop

3.2 Outils Oracle


En plus du serveur Oracle en lui-même, Oracle met à votre disposition plusieurs outils graphiques ou pas
pour faciliter l'administration du serveur. Si vous avez quelques difficultés pour lancer les outils présents
ci-dessous assurez-vous d'avoir l'identité de l'utilisateur Oracle lorsque vous les lancez.
Enterprise Manager
L'une des grosses nouveautés d'Oracle 10g est l'apparition du nouvel Enterprise Manager. En effet, celui-
ci abandonne l'interface Java/Swing au profit d'une interface Web. Pour avoir accès à Enterprise Manager
ouvrez votre navigateur web préféré et tapez l'url suivante : http://localhost:5500/em. Loguez vous sur
l'application, passez les pages d'annonces et vous devriez arriver sur cette page:

iSQL*Plus
iSQL*Plus est un outil qui vous permet d'exécuter des requêtes SQL ou des scripts SQLP depuis une
interface Web. Vous trouverez cet outil à l'adresse http://127.0.0.1:5560/isqlplus.

Il existe un équivalent à iSQL*Plus en ligne de commande. Vous pouvez le lancer avec la commande :
$ sqlplus
SQL*Plus: Release 10.1.0.2.0
Production on Wed May 5 23:57:52 2004

Copyright (c) 1982, 2004, Oracle. All rights reserved.

Enter user-name:

DBCA
DBCA (DataBase Configuration Assistant) est un outil graphique qui vous permet de gérer les bases de
données présentes sur votre serveur Oracle. L'application peut être lancée par la commande:
$ dbca

Ultrasearch
Ultrasearch est un outil mis à disposition par Oracle pour interroger toutes les sources
d'informations de votre entreprise simultanément. Vous trouverez cet outil à l'adresse
suivante : http://127.0.0.1:5620/ultrasearch

Conclusion

Voilà, c'est ici que se termine cet article. J'espère sincèrement qu'il a pu vous aider dans votre décision
d'installer Oracle 10g sous système GNU/Linux.

Comme vous avez pu le voir, la préparation du système est un élément indispensable à la bonne marche
de l'installateur. Sachez toutefois que certaines distributions comme Suse proposent déjà un système
prêt à recevoir un serveur Oracle et vous facilitent donc un peu la tâche.

Bibliolink
David on Net
Togaware.com
Werner's Oracle Linux Page
Forum Développez.com: Installation Oracle 10g sous Linux

You might also like