14
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

Installation et configuration d'oracle sous linux

  • Upload
    anolui

  • View
    3.001

  • Download
    4

Embed Size (px)

DESCRIPTION

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.

Citation preview

Page 1: Installation et configuration d'oracle sous linux

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érequis1.2. Paramètres noyau1.3. Paramètres systèmes1.4. Utilisateurs et groupes1.5. Système de fichiers1.6. Environnement de l'utilisateur oracle 2. Installation 2.1. Installation des logiciels requis2.2. Téléchargement de l'archive d'installation2.3. Faire diversion2.4. Installation d'Oracle 3. Post-Installation 3.1. Lancer et arrêter le serveur3.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érequisOracle est comme à son accoutumée trés gourmand en ressources système. En effet, la documentation recommande les spécifications matérielles minimales suivantes:

ItemsValeur

minimaleCommande

Mémoire physique 512 Mogrep MemTotal /proc/meminfo

Fichier d'échange (SWAP) 1 Gogrep SwapTotal /proc/meminfo

Espace libre temporaire (/tmp) 400 Mo df -h /tmp

Espace libre pour l'application 2,5 Go df -h /

Page 2: Installation et configuration d'oracle sous linux

Espace nécessaire à la création d'un base de données

1,2 Go df -h /

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

semmslsemmnssemopmsemmni

5032000100128

/proc/sys/kernel/sem

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 :

Page 3: Installation et configuration d'oracle sous linux

kernel.shmmax = 2147483648kernel.shmmni = 4096kernel.sem = 250 32000 100 128fs.file-max = 65536net.ipv4.ip_local_port_range = 1024 65000Les 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èmeIl 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 modifierTout 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 groupesPour 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

Page 4: Installation et configuration d'oracle sous linux

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 fichiersOracle 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 oracleL'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 - oracleEnsuite 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/oracleORACLE_SID=dataexport ORACLE_BASE ORACLE_SIDPour 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 requisSous 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

Page 5: Installation et configuration d'oracle sous linux

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'installationOracle 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 diversionOracle 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 << EOFRed 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'OracleIl 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:

Page 6: Installation et configuration d'oracle sous linux

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):

Page 7: Installation et configuration d'oracle sous linux

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.

Page 8: Installation et configuration d'oracle sous linux

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 :

Page 9: Installation et configuration d'oracle sous linux

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.shLors 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 serveurNous 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/oratabTout 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

Page 10: Installation et configuration d'oracle sous linux

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 scriptMaintenant 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 1fi

# 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)

Page 11: Installation et configuration d'oracle sous linux

$0 stop $0 start ;; *) echo "Usage: $0 start|stop|restart|reload" exit 1esacexit 0Rendez 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 OracleEn 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 ManagerL'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*PlusiSQL*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.

Page 12: Installation et configuration d'oracle sous linux

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

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

Enter user-name:

DBCADBCA (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

Page 13: Installation et configuration d'oracle sous linux

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.

BibliolinkDavid on NetTogaware.comWerner's Oracle Linux PageForum Développez.com: Installation Oracle 10g sous Linux