Bienvenue visiteur (Inscription |  Connexion)
Qui est en ligne ?
Il y a : 24 utilisateurs en ligne, consultez le détail
Auteur Message
Jul
#0 Message posté le : 07-04-2007 à 09:28:03


Elfe


Forum : Modérateur
Association : Membre actif
Arrivé(e) le : 16-01-2003
Nombre de messages : 3699


Oracle est ce qu'on appelle un système de gestion de bases de données relationnelles (SGBDR pour les intimes). C'est en 1977 que Lawrence Ellison, Bob Miner et Ed Oates fondent la société "Relational Software Incorporated (RSI)". Ils conçoivent un RDBMS appelé Oracle, le premier système commercial relationnel disponible sur le marché.

Aujourd'hui Oracle est le leader du marché des SGBDR, il détient près de 40 % des parts du marché professionnel et permet de gérer des bases de données de l'ordre du To. Il est disponible pour de nombreuses saveurs d'Unix, pour Linux et pour Windows.

Dans ce document je détaille l'installation de la version 9iR2 (i pour Internet) d'Oracle, et ce bien que la version 10g (g pour grid ou grappe en Français) soit disponible. Oracle 9i supporte pleinement la norme SQL3 et propose l'approche objet-relationnelle la plus aboutie actuellement. Le tutorial a été testé sur une Mandriva 9.1, il se peut qu'il fonctionne tel quel sur une autre distribution, mais je ne donne aucune garantie.

1. Configuration matérielle nécessaire



Pour fonctionner oracle a besoin d'au minimum ceci :
  • Processeur : Minimum PIII 800 Mhz (P4 ou Athlon 1 Ghz conseillé)
  • Ram : Minimum 512Mo (1 Go conseillé)
  • Swap : Minimum 1 Go (oracle en utilisera 750 Mo)
  • Espace temporaire : Il y'a 3 images compressées qui font 1,5 Go et il faut compter 2,5 Go au total une fois décompressées, ce qui fait un bon 4 Go d'espace disque nécessaire.
  • Espace d'installation : Avec une unique base l'installation d'oracle nécessite 3.5 Go, si vous comptez l'utiliser à l'aise, je vous conseille 10 Go. Je vais supposer que cette partition est montée dans /u01/.

2. Configuration logicielle nécessaire



Vous devez avoir les logiciels suivants installés : awk, sort et basename dans le répertoire /bin/. S'ils ne sont pas installés, installez-les. S'ils sont installés dans /usr/bin/ par exemple au lieu de /bin/ faîtes, les liens suivants :
ln -s /usr/bin/awk /bin/awk
ln -s /usr/bin/sort /bin/sort
ln -s /usr/bin/basename /bin/basename


Il vous faut également les paquetages : gcc, glibc, binutils, db, perl et les -dev(el) correspondant quand il y'en a. Pour les utilisateurs de Mandriva, il s'agit de :
  • gcc
  • cpp
  • glibc-devel
  • binutils
  • compat-gcc
  • compat-libgcj
  • compat-libgcj-devel
  • nss_db-compat
  • perl

Tous ces paquetages se trouvent sur les cdroms de votre distribution. Si votre distribution en propose, préférez l'outil de gestion efficace des dépendances (apt-get pour Debian, urpmi pour Mandriva).

3. Préparez Linux pour Oracle


Pour fonctionner correctement, Oracle à besoin que votre noyau soit dans une certaine configuration. Toutes les commandes qui suivent s'exécutent en root.
  • Les sémaphores :
    tapez : cat /proc/sys/kernel/sem
    qui affiche quelque chose comme : 250 32000 32 128

    Ces valeurs correspondant respectivement à : SEMMSL SEMMNS SEMOPM SEMMNI. SEMOPM doit être à 100, si ce n'est pas le cas pour vous, vous pouvez le fixer (tapez les 2 lignes).

    Temporairement par :
    sysctl -w kernel.sem="250 32000 100 128"
    Définitivement par :
    echo "kernel.sem=250 32000 100 128" >> /etc/sysctl.conf

  • shmall :
    tapez : cat /proc/sys/kernel/shmall , qui affiche habituellement 2097152, ce qui est suffisant.

  • Max share Memory (shmmax) :

    tapez : cat /proc/sys/kernel/shmmax , la valeur affichée devrait être la moitié de votre ram. Pour 512 Mo de ram, il devrait afficher : 268435456 (la convention utilisée est 1 ko = 1024 octets). Si cette valeur n'était pas la moitié de votre ram, vous pouvez la modifier.

    Temporairement par :
    sysctl -w kernel.shmmax=`expr \( 512 \/ 2 \) \* 1024 \* 1024`
    Définitivement par :
    echo "kernel.shmmax=`expr \( 512 \/ 2 \) \* 1024 \* 1024`" >> /etc/sysctl.conf

  • Minimum Share Memory (shmmni) :
    tapez : cat /proc/sys/kernel/shmmni , la valeur doit être au moins égale à 100, heureusement elle habituellement de 4096.

  • taille max des fichiers :
    tapez : echo 65536 > /proc/sys/fs/file-max

  • ulimit (limite utilisateur) :
    finissez par :
    ulimit -n 65536
    ulimit -u 16384
    ulimit -f


4. Utilisateur et groupes pour Oracle



Pour commencer, créez les groupes "dba" pour les droits sur "SYSDBA" pour gérer le SGBDR, "oper" pour les droits sur "SYSOPER" pour le démarrage et l'arrête du SGBDR et enfin "oinstall" pour les droits sur "ORAINVENTORY" pour accéder au répertoire de l'installateur java oraInventory. Toutes les commandes qui suivent s'exécutent en root.
groupadd dba
groupadd oinstall
groupadd oper


Il est également important de créer un utilisateur spécifique à Oracle : "oracle". Cet utilisateur aura des droits limités mais suffisant pour lancer/arrêter/gérer Oracle. C'est une question de sécurité.
useradd -d /u01/app/oracle/product -g oinstall -G dba,oper -m -k /etc/skel -s /bin/bash oracle
Attribuez-lui un mot de passe:
passwd oracle


Tapez et confirmez, le mot de passe. En principe, le répertoire /u01/app/oracle/product devrait être créé, si ce n'est pas le cas, vous pouvez le créer par :
mkdir -p /u01/app/oracle/product


Créez ou éditez le fichier /u01/app/oracle/product/.bash_profile et rajoutez-y ceci :
export LD_ASSUME_KERNEL=2.2.5

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=/u01/app/oracle/product

export ORACLE_TERM=xterm

export ORACLE_SID=ORTD

export PATH=$PATH:$ORACLE_HOME/bin

CLASSPATH=${ORACLE_HOME}/JRE:${ORACLE_HOME}/jlib:${ORACLE_HOME}/rdbms/jlib

export CLASSPATH=${CLASSPATH}:${ORACLE_HOME}/network/jlib

export CLASSPATH=${CLASSPATH}:${JAVA_HOME}/lib/classes.zip

export NLS_LANG=french_france.WE8ISO8859P15

export VAROPT=/u01/app/oracle/log



if [ "${LD_LIBRARY_PATH:-}" == "" ]; then

LD_LIBRARY_PATH=${ORACLE_HOME}/lib:/usr/lib:/usr/local/lib

else

LD_LIBRARY_PATH=${ORACLE_HOME}/lib:${LD_LIBRARY_PATH}

LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${ORACLE_HOME}/network/lib

fi

export LD_LIBRARY_PATH

Finissez en adaptant l'arborescence nécessaire à Oracle :
chown -R oracle.dba /u01/app/oracle
chown -R oracle.oinstall /u01/app/oracle/product
mkdir -p /u01/app/oracle/log
chown -R oracle.oinstall /u01/app/oracle/log


Tout oracle se trouvera dans /u01/app/oracle/ . /u01/app/oracle/product sera le répertoire personnel de l'utilisateur oracle et les logs seront dans /u01/app/oracle/log. Le jour où vous souhaiter désinstaller oracle, rien de plus simple, il suffira de supprimer le contenu de /u01/app/oracle/.

5. Télécharger et démarrer l'installation d'Oracle



Peu de gens le savent, mais Oracle 9iR2 est disponible gratuitement pour un Usage "éducatif". Ce document n'est pas une incitation à la transgression des règles dictées par les concepteurs du logiciel. N'utilisez ce logiciel que dans les limites définies par Oracle.

Cette mise au point faîtes, rendez-vous sur technet.oracle.com. Là téléchargez les 3 fichiers de la version 9.2.0 "standard-entreprise" : lnx_920Disk1.cpio.gz, lnx_920Disk2.cpio.gz et lnx_920Disk3.cpio.gz.

Vous pouvez graver ces fichiers sur des cdroms pour une future réinstallation ou si vous êtes limité en espace disque. Dans la suite, je supposerais que vos 3 fichiers soient dans /home/math/Oracle, adaptez à votre cas. Pour décompresser les archives, tapez dans un terminal :
cd /home/math/Oracle
gunzip *.gz
cpio -idmv lnx_920_disk1.cpio
cpio -idmv lnx_920_disk2.cpio
cpio -idmv lnx_920_disk3.cpio


A la suite de quoi vous devriez trouver les 3 répertoires suivants : Disk1/, Disk2/, Disk3/ dans /home/math/Oracle. Maintenant, autorisez l'accès à votre DISPLAY et devenez oracle. Concrètement tapez :
xhost +localhost
su oracle


Vous pouvez lancer l'installation (en étant oracle) :
/home/math/Oracle/Disk1/install/linux/runInstaller

6. Présentation des versions



Lors de l'installation d'oracle (qui se fait sous l'identité oracle), il est possible de choisir entre trois propositions :
  • Oracle 9i Database : En version standard ou Entreprise, ceci installera Oracle avec une base de données préconfigurée, les utilitaires de configuration, la documentation ... Le choix Entreprise installera des options en plus et aussi Oracle Manager en serveur d'application alors que la version standard offre juste la console.
  • Oracle 9i Client : La version administrateur vous installera tous les composants réseau et d'administration nécessaire. La version Runtime servira à vos clients qui souhaitent interroger Oracle sans l'administrer.
  • Management Server : Contient des services en plus, comme la possibilité d'installer un annuaire LDAP (choix: Internet Directory) ou autres composants XML (choix Integration Server)

7. L'Installation en image



L'installation se fait sous l'identité d'orcale. La fenêtre de bienvenue apparaît :

Cliquer sur suivant et spécifier le chemin d'installation qui mène vers l'inventaire :

Ici vous devez saisir le groupe Unix qui pourra ajouter des composants logiciels, comme nous l'avons vu plus haut il s'agit du groupe "dba" :

Certaines opérations ont besoin des pouvoirs de root:

Ouvrez un terminal exécuter le script comme je l'ai fait dessous. Une fois celui-ci achevé, vous pourrez reprendre l'installation en revenant sur la fenêtre et cliquer "continuer" :

Etape importante, vous devez spécifier les sources des fichiers d'installation (il trouvera automatiquement) mais aussi le répertoire maison d'Oracle. Si vous avez suivi mon arborescence, nous installerons cela dans /u01/app/oracle/product/, on vous demandera de créer le sous-répertoire "product" accepter-le :

Le moment est venu de choisir, bien sûr j'ai pris le premier pour ce how-to :

Nous opterons ensuite pour la version la plus complète qui est la "Entreprise Edition". Comme vous le voyez, il vous faudra au moins 2Go :

Le choix qui suit permet de pré-configurer une base selon des modèles, je ne me pencherai pas sur le sujet car cela dépend totalement de ce que vous souhaitez faire. Sachez que certains progiciels, comme SAP sont composé de 24.000 tables. C'est pour cela qu'Oracle propose un type de base de donnée modèle, cela permettra d'optimiser le logiciel en fonction de vos besoins et de la taille des données à stocker. Pour ma part j'ai opté pour le choix "General".

Maintenant nous allons donner un nom de type FQDN (Full Qualified Domain Name) à notre base. Je lui ai donné le même nom que le nom d'hôte de ma machine. Le SID est un identifiant unique de la base, je l'ai laissé tel quel car je n'accéderai à ma base que par le FQDN de toute façon.

Voici l'endroit où seront stockés les tablespaces. C'est un petit peu la même architecture qu'avec SAP, seulement SAP impose un standard qui sapdata1, sapdata2 etc... Ici nous aurons oradata qui est par défaut le standard Oracle.

Il faut aussi indiquer le type d'encodage de la base. L'installeur Java a détecté par rapport à mon système d'exploitation mon type. De plus nous avons aussi éditer les variables d'environnement utilisateurs plus tôt et nous avons déjà indiqué la valeur pour la france. Vous pouvez donc cliquer sur suivant :

Un bref résumé de ce que nous venons de choisir et paramètre :

Pendant la phase d'installation et selon sa puissance votre PC, va mouliner un moment. Vous comprendrez aussi l'intérêt d'avoir copié les sources sur le disque dur et non sur un CDROM. Une fois l'installation terminée, l'installeur effectue les liaisons d'oracle avec ses composants. Et c'est à ce moment qu'intervient le premier bug :

Ne vous inquiétez pas car ce problème a été résolu par la technet d'Oracle. Ouvrez un terminal, et sous l'identité oracle éditez le fichier suivant :
vi $ORACLE_HOME/ctx/lib/env_ctx.mk


Une fois dans le fichier déplacer vous jusqu'en bas, il s'y trouve une longue ligne commençant par "INSO_LINK", virez-la (echap+d+d), et remplacer-la par celle ci-dessous :
INSO_LINK = -L$(CTXLIB) $(LDLIBFLAG)m $(LDLIBFLAG)dl $(LDLIBFLAG)sc_ca $(LDLIBFLAG)sc_fa $(LDLIBFLAG)sc_ex $(LDLIBFLAG)sc_da $(LDLIBFLAG)sc_ut $(LDLIBFLAG)sc_ch $(LDLIBFLAG)sc_fi $(LLIBCTXHX) $(LDLIBFLAG)c -Wl,-rpath,$(CTXHOME)lib $(CORELIBS) $(COMPEOBJS)
Elle est presque pareille, il n'y a que ce qui est en rouge qui est ajoutée. Une fois cette opération passée, revenez sur le message d'erreur et cliquer sur "réessayer", par miracle l'installation repart :

Vous devrez encore une fois exécuter un script depuis un terminal qui nécessite les droits de root :

Procéder comme ceci, il vous sera demandé le local bin directory, ne répondez rien et valider :

Vous croyez alors que vous avez réussi ? Et bien non, il y'a encore un problème avec un composant : le dbca.

En lisant de plus près les détails de l'erreur du composant, on se rend compte que c'est un problème lié à la gestion de la mémoire et des threads. Technet a résolu le problème en procédant de la sorte. Ouvrez un terminal et connectez-vous sous root, puis taper :
touch /etc/rac_on


Revenez ensuite à l'écran d'erreur, cliquer sur le composant qui a échoué puis sur "réessayer". Et encore une fois, l'installation est sauvée et repart :

Par la suite un l'assistant de configuration de base de donnée, vous demandera des informations sur les comptes oracle par défaut :

Voilà ! c'est terminé :

Voici un test du serveur web concluant :

8. Liens



Pour plus d'informations consulter la technet d'Oracle, elle regorge d'informations précieuses. Si vous recevez un code d'erreur, n'hésitez pas à le taper dans google, vous tomberez sans doute sur une page de la technet expliquant les causes d'un bug et sa résolution.

9. Ressources papiers



Les livres sur Oracle ne manquent pas, en revanche de bons livres d'Oracle sous Linux sont plutôt rares. Je vous conseille toutefois ce bouquin d'environ 900 pages :

"Oracle 9i sous Linux" des éditions EYROLLES. Attention toutes fois, ce livre est splendide mais il ne vous aidera pas à résoudre les bugs d'installation. C'est pourquoi j'ai décidé de créer cette page car j'ai énormément buté pour installer ce SGBDR. A part cela c'est un ouvrage indispensable pour comprendre et administrer Oracle sous Linux.

10. Précisions



Je souhaite remercier toutes les personnes sur les newsgroups qui donnent des coups de mains aux autres. En effet, la version 9i d'oracle a fait explosé certains forum (notamment celui de la technet-linux) de messages de détresse. La version d'avant la 9iR1 était encore plus difficile à installer à cause des problèmes de compatibilité java. Heureusement cette dernière version, vous installe la version adéquate du JRE. En espérant que ce how-to vous servira.

11. Dernière MAJ: Oracle 10g sous Fedora Core 1




Il s'agit juste d'un pense-bête pour une installation rapide et sans problème sur cette nouvelle version. Oracle a fait beaucoup d'effort pour les installations Linux, celle-ci se passe sous Fedora Core 1.

Liste des paquetages nécessaire:

nutils-2.14.90.0.6-3.i386.rpm
mpat-db-4.0.14-2.i386.rpm
mpat-gcc-7.3-2.96.118.i386.rpm
mpat-gcc-c++-7.3-2.96.118.i386.rpm
mpat-libstdc++-7.3-2.96.118.i386.rpm
mpat-libstdc++-devel-7.3-2.96.118.i386.rpm
c-3.3.2-1.i386.rpm
c-c++-3.3.2-1.i386.rpm
ibc-devel-2.3.2-101.i386.rpm
ibc-headers-2.3.2-101.i386.rpm
ibc-kernheaders-2.4-8.36.i386.rpm
bstdc++-3.3.2-1.i386.rpm
bstdc++-devel-3.3.2-1.i386.rpm
enmotif21-2.1.30-8.i386.rpm
enmotif-2.2.2-16.1.i386.rpm
enmotif-devel-2.2.2-16.1.i386.rpm
tarch-1.0-1.i386.rpm


xtraction du CD d'install:
pio -idmv < ship.db.cpio


ernel tuning:
sctl -w kernel.sem="250 32000 100 128"
ho "kernel.sem=250 32000 100 128" >> /etc/sysctl.conf
ho "kernel.shmmax=`expr \( 512 \/ 2 \) \* 1024 \* 1024`" >> /etc/sysctl.conf
ho 65536 > /proc/sys/fs/file-max
imit -n 65536
imit -u 16384
imit -f


réation de l'User et groups:
roupadd dba
roupadd oinstall
roupadd oper
seradd -d /oracle/product/10g -G oinstall,oper -g dba oracle
asswd oracle (choisissez un mot de passe)
hown -R oracle:dba /oracle/


diter Fichier de profile:
i /home/oracle/.bash_profile


ller dans le fichier du profile ce qui suit:
Get the aliases and functions
[ -f ~/.bashrc ]; then
~/.bashrc


User specific environment and startup programs

TH=$PATH:$HOME/bin
port PATH
set USERNAME
port LD_ASSUME_KERNEL=2.2.5
port ORACLE_BASE=/oracle/product
port ORACLE_HOME=/oracle/product/10g
port ORACLE_TERM=xterm
port ORACLE_SID=MAT
port PATH=$PATH:$ORACLE_HOME/bin
ASSPATH=${ORACLE_HOME}/JRE:${ORACLE_HOME}/jlib:${ORACLE_HOME}/rdbms/jlib
port CLASSPATH=${CLASSPATH}:${ORACLE_HOME}/network/jlib
port CLASSPATH=${CLASSPATH}:${JAVA_HOME}/lib/classes.zip
port NLS_LANG=french_france.WE8ISO8859P15
port VAROPT=/oracle/product/10g/log

[ "${LD_LIBRARY_PATH:-}" == "" ]; then
_LIBRARY_PATH=${ORACLE_HOME}/lib:/usr/lib:/usr/local/lib
se
_LIBRARY_PATH=${ORACLE_HOME}/lib:${LD_LIBRARY_PATH}
_LIBRARY_PATH=${LD_LIBRARY_PATH}:${ORACLE_HOME}/network/lib

port LD_LIBRARY_PATH



diter Fichier /etc/redhat-release pour "berner" l'installateur Oracle, il doit contenir uniquement cette ligne:
d Hat Linux release 2.1 (drupal)


érif de l'installation
u - oracle
qlplus /nolog
onnect / as sysdba
tartup
base doit démarrer.....

hutdown
base doit se stopper....

installation est maintenant terminée.




--Message édité par Jul le 07-04-2007 à 09:28:03--


-------------------------------------
Le Paradis c'est www.trustonme.net