L’absence de documentation et le non-respect des normes sont souvent la source d’une inutile perte de temps. L’installation d’Oracle sous Linux (Mandriva en particulier), une fois que l’on connait la procédure à suivre est un jeu d’enfant (si tout se passe comme prévu bient entendu). La perte de temps est occasionné par le fait que contrairement à la plupart des logiciels, Oracle ne propose pas de dépôt (alors que même Google le fait !). Il est donc nécessaire de tout installer manuellement, y compris les dépendances. La documentation étant inexistante, et le logiciel à installer monstrueusement complexe, il est presque impossible de trouver tout seul la procédure (à moins d’être le dieu du système).
J’ai pour ma part passé un temps considérable sur cette installation, et force est de constater que j’ai perdu beaucoup de temps parce que les informations dont j’avais besoin étaient difficiles à trouver, parce qu’il n’existe qu’un seul tutoriel décrivant de façon propre la procédure à suivre, et que j’ai mis beaucoup de temps à le trouver. Avant de vous décrire les étapes de l’installation, je vais vous décrire les symptômes que j’ai rencontré.
L’installation du rpm oracle-xe-10.2.0.1-1.0.i386.rpm se fait fort aisément avec la commande (ne le faites pas tout de suite, il y a des étapes à exécuter au préalable)
rpm -ivh oracle-xe-10.2.0.1-1.0.i386.rpm
C’est cependant loin d’être suffisant pour qu’Oracle fonctionne. Si vous essayez de vous connecter sur http://127.0.0.1:8080/apex, vous avez un magnifique connexion refusée. Et si vous arrivez à lancer sqlplus en ligne de commande, vous aurez droit à :
ERROR: ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist Linux Error: 2: No such file or directory
Le tutoriel que j’avais utilisé dans un premier temps était totalement muet sur cette erreur, j’en suis venu à me demander si je n’étais pas le seul à avoir ce problème. J’ai alors scruté le net à la recherche d’une solution. Et cela en vain. On me décrivait sur les forums des symptômes proches, mais résultant malheureusement d’erreurs différentes.
J’ai fini par trouver une partie de la solution sur le site (site aujourd’hui disparu) de Gilles Briard. Il y a ensuite diverses bidouilles à faire pour que le tout fonctionne. Avant de lire la suite, vous devriez désinstaller oracle :
urpme oracle-xe
Installation du rpm
Pour fonctionner, Oracle nécessite quelques rpms. Si Oracle, comme tout le monde utilisait des dépôts et gérait les dépendances, ça nous simplifierait grandement la vie. Comme ce n’est pas le cas, il est nécessaire d’installer manuellement les deux packageslibaio et bc, en root :
urpmi libaio bc
Il faut ensuite d’ajouter les lignes suivantes à la fin du fichier /etc/sysctl.conf :
########### # Valeurs pour Oracle XE ########### kernel.shmall = 2097152 kernel.shmmax = 536870912 kernel.shmmni = 4096 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000
Puis lancer la commande
sysctl -p
Vous pouvez ensuite lancer l’installation d’Oracle avec la commande :
rpm -ivh oracle-xe-10.2.0.1-1.0.i386.rpm
Vous pouvez conserver tous les paramètres par défaut.
Si tout se passe comme prévu, il est possible pour vous d’utiliser oracle en passant parhttp://127.0.0.1:8080/apex/. Si vous souhaitez utiliser sqlplus en ligne de commande, il y a quelques manipulations supplémentaires à effectuer. Elles sont décrites dans la page suivante de l’article.
Utilisation de sqlplus en ligne de commande
Certaines personnes, ont tout comme moi un goût prononcé pour la ligne de commande. Grande doit être leur frustration lorsqu’on les force à utiliser Oracle via un navigateur. Les étapes suivantes vous permettront d’utiliser sqlplus depuis la console.
Tout d’abord, il vous faut localiser sqlplus dans votre arborescence. Sur mon système, il se trouve ici :
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin
Il est possible que cela diffère légèrement sur votre système, vous ne devriez néanmoins pas avoir trop de difficultés à le localiser. Si une fois cela fait, vous lancez sqlplus, vous obtenez ce magnifique message d’erreur :
[klaus@localhost bin]$ ./sqlplus Error 6 initializing SQL*Plus Message file sp1.msb not found SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory
A moins que vous souhaitiez perdre autant de temps que j’en ai perdu, ne vous conformez pas au message que vous lisez. Il existe dans le même répertoire un script appelé oracle_env.sh et contenant les instructions suivantes :
[klaus@localhost bin]$ more oracle_env.sh ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server export ORACLE_HOME ORACLE_SID=XE export ORACLE_SID NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh` export NLS_LANG PATH=$ORACLE_HOME/bin:$PATH export PATH if [ $?LD_LIBRARY_PATH ] then LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH else LD_LIBRARY_PATH=$ORACLE_HOME/lib fi export LD_LIBRARY_PATH
Il s’agit d’un script qui positionne correctement toutes les variables d’environnement nécessaires au bon fonctionnement d’Oracle. Exécutez le script :
[klaus@localhost bin]$ ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server [klaus@localhost bin]$ export ORACLE_HOME [klaus@localhost bin]$ ORACLE_SID=XE [klaus@localhost bin]$ export ORACLE_SID [klaus@localhost bin]$ NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh` [klaus@localhost bin]$ export NLS_LANG [klaus@localhost bin]$ PATH=$ORACLE_HOME/bin:$PATH [klaus@localhost bin]$ export PATH [klaus@localhost bin]$ if [ $?LD_LIBRARY_PATH ] > then > LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH > else > LD_LIBRARY_PATH=$ORACLE_HOME/lib > fi [klaus@localhost bin]$ export LD_LIBRARY_PATH
Je l’ai pour ma part exécuté comme un boucher : en copiant-collant dans la console le contenu du script. Libre à vous d’utiliser des méthodes plus fines. Il est aisé de vérifier si ça a fonctionné, il suffit pour ce faire d’afficher le contenu de la variable d’environnement $PATH :
[klaus@localhost bin]$ echo $PATH /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin:/usr/bin:/bin:/usr/local/bin:/usr/X11R6/bin/:/usr/games:/usr/lib/qt4/bin:/usr/bin:/opt/kde3/bin:/home/klaus/bin
Pour que vos variables d’environnement soit toujours bien positionnées. Il faut éditer le fichier ~/.bashrc et ajouter dedans soit le contenu du fichier oracle_env.sh, soit une commande qui va exécuter les intructions de ce fichier. Une fois cela fait vous pouvez exécuter :
[klaus@localhost bin]$ cd [klaus@localhost ~]$ sqlplus SQL*Plus: Release 10.2.0.1.0 - Production on Dim. Avr. 26 05:15:51 2009 Copyright (c) 1982, 2005, Oracle. All rights reserved. Entrez le nom utilisateur : system Entrez le mot de passe : Connecté à : Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production SQL>
Laisser un commentaire
Vous devez vous connecter pour publier un commentaire.