Contenu | Rechercher | Menus
Selon les tags présents sur cette page, celle-ci est ancienne et ne contient plus d'informations sur une des versions supportées d'Ubuntu.
Apportez votre aide…

Oracle™ Database

Oracle est un système de gestion de base de données relationnel (SGBDR) fourni par Oracle Corporation.

Remarque : La marche à suivre de cet article ne fonctionne que pour les installations 32 bits (et non pas pour 64 bits, amd64).

Oracle XE 10g R2

Oracle Express Edition 10g R2 est la version allégée gratuite d'Oracle voir http://www.oracle.com/technology/software/products/database/xe/htdocs/102xelinsoft.html.

C'est vraiment facile de l'installer. Vous n'avez pas besoin de créer les utilisateurs d'Oracle, ou de modifier le fichier sysctr.conf. C'est déjà fait dans le paquet. Avec Oracle XE vous n'aurez droit qu'à une base de données (instance) et son SID (Oracle System ID) vaudra par défaut « XE ».

Pré-requis

Comme d'habitude, Oracle a besoin de beaucoup de ressources, avec un minimum pour le serveur de 512 Mio de mémoire vive et de 1024 Mio de Swap ainsi que de 1,5 Gio d'espace disque libre. Ces pré-requis sont vérifiés lors de l'installation du paquet.

Cependant, faites attention, l'espace dédié au swap n'a pas de valeur attribuée par défaut pendant l'installation. Ce lien en anglais décrit ce problème http://www.oracle.com/technology/tech/linux/install/xe-on-kubuntu.html'.

Installation

Bibliothèques dépendantes

On a besoin seulement d'une bibliothèque et d'un outil. Installez les paquets suivants :

  • libaio1 - kernel aio access library
  • bc - The GNU bc arbitrary precision calculator language

Avec dpkg

Bon bah là, c'est le régal d'installer un serveur, une ligne de commande et voilà !

dpkg -i oracle-xe-universal_10.2.0.1-0_i386.deb

Si vous avez une architecture 64 bits, vous pouvez forcer l'installation avec

sudo dpkg --force-architecture -i oracle-xe-universal_10.2.0.1-0_i386.deb

Avec apt-get

Ajouter le dépôt de paquet suivant (ligne à ajouter dans le fichier /etc/apt/sources.list) :

deb http://oss.oracle.com/debian unstable main non-free

Si vous avez un problème de clé lors de "apt-get update", il faut télécharger et importer la clé du dépôt Oracle :

wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle  -O- | sudo apt-key add -

Mettez à jour la liste des paquets des dépôts et installez les trois paquets suivants :

  • oracle-xe - Oracle Database 10g Express Western European Edition
  • oracle-xe-client - Oracle Client 10g Express Edition
  • oracle-xe-universal - Oracle Database 10g Express Universal Edition

Mise à jour des sources d'installation :

sudo apt-get update

Installation des paquets précédemment présentés :

sudo apt-get install oracle-xe 
OU
sudo apt-get install oracle-xe-universal
ET
sudo apt-get install oracle-xe-client

Swap insuffisant

Si lors de l'installation du paquet, un message du style :

This system does not meet the minimum requirements for swap space

Lors de l'installation via Synaptic ou Adept un message d'erreur générique appairait, et non pas le message ci-avant.

Et qu'il vous est impossible de re-partitionner le swap, il est possible de créer un fichier de swap comme suit :

sudo dd if=/dev/zero of=/swapfile bs=1M count=100

Où « count » est le nombre de Mio à rajouter à votre swap existant pour arriver au 1006 Mio requis par Oracle XE.

Puis mise au format swap :

sudo  mkswap /swapfile

Enfin activation :

sudo swapon /swapfile

Source : Oracle.com

insufficient diskspace

Si lors de l'installation du paquet, un message du style :

You have insufficient diskspace in the destination directory (/usr/lib) to install

Oracle Database 10g Express Edition. The install requires at lease 1.5 GB free on this disk

créer un lien symbolique dans le dossier d'installation /usr/lib dans un endroit ou il y'a de l'espace ex: /home/dossier_personnel

sudo ln -s /home/dossier_personnel/oracle oracle 

Configuration

Paramétrage de l'installation

Pour la configuration, lancer ce script :

/etc/init.d/oracle-xe configure

Il vous demandera les mots de passes SYS et SYSTEM, les ports TCP de Oracle listener et de l'application serveur d'Oracle. Dans la plupart des cas, vous devez laisser libre les ports standards.

Maintenant pour créer users / schema / … Vous avez une jolie interface http pour cela :

http://localhost:8080/apex/

Si vous installez la base de données Oracle sur une machine sans un serveur X, vous devez utiliser un port d'envoi SSH:

ssh -L 8080:localhost:8080 utilisateur@ADRESSE_IP_DE_VOTRE_SERVEUR

Toutes les modifications faites, il faut démarrer Oracle

/etc/init.d/oracle-xe start

Les variables d'environnement ORACLE_HOME et ORACLE_SID

Ce qui suit est facultatif mais pratique.

Les variables d'environnement ne sont pas définies par le package. Si vous désirez utiliser les commande imp et exp ou éviter de taper le chemin complet de la commande sqlplus il faudra déclarer:

export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
export ORACLE_SID=XE

Vous pouvez renseigner les variables d'environnement ORACLE_HOME et ORACLE_SID dans le fichier ~/.bashrc de telle façon à pouvoir les valoriser à chaque fois que vous ouvrirez votre terminal. Placez le code suivant à la fin du fichier ~/.bashrc :

export PATH=$PATH:/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin
ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
export ORACLE_HOME
export ORACLE_SID=XE

Notes importantes :

  • Pas de slash à la fin du chemin absolu du dossier oracle ! Ceci vous évitera l'erreur :
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux Error: 2: No such file or directory

Exemple :

ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server (CORRECT)
ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/ (INCORRECT)
  • le SID pour Oracle XE s'écrit en majuscule "ORACLE_SID=XE"

Les variables d'environnement "local"

Il est intéressant d'ajouter les variables d'environnement "local". Pour ce faire, ouvrez le fichier suivant :

/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh

Nous allons modifier ou ajouter de la manière suivante :

ORACLE_SID=XE;
export ORACLE_SID
ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server;
export ORACLE_HOME
PATH=$ORACLE_HOME/bin:$PATH;
export PATH
NLS_LANG=AMERICAN_AMERICA.AL32UTF8;
export NLS_LANG
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH;
export LD_LIBRARY_PATH

Oracle 10g Enterprise / édition standard (Ubuntu 5.10)

Pré-requis

  • A minima, vous devez disposer d'au moins 500 Mio de Ram, de 1 Gio de swap et des paquets suivants :
    apt-get install gcc make binutils lesstif2 libc6 libc6-dev rpm libmotif3 libaio libstdc++5 
  • Vous devriez vous assurer par ailleurs que vos DNS ou votre ficher « /etc/hosts » soient correctement configurés de manière à ce que votre adresse IP renvoie un nom de domaine correct.

Paramétrage des utilisateurs

Oracle a besoin d'un utilisateur système et trois nouveaux groupes doivent être ajoutés au système.

# addgroup oinstall
# addgroup dba
# addgroup nobody
# useradd -g oinstall -G dba -p password -d /opt/oracle -s /bin/bash oracle
# usermod -g nobody nobody

Création des répertoires et paramétrage des droits

Note : La structure des répertoires par défaut d'oracle est habituellement /u01 et U01. J'ai choisi d'être plus proche de FHS en mettant /opt/oracle et /opt/oradata :

# mkdir -p /opt/oracle
# mkdir /opt/oradata
# chown -R oracle:oinstall /opt/ora*
# chmod -R 775 /opt/ora*

Modifications de la configuration

Commencez par ajouter les lignes suivantes à /etc/sysctl.conf :

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

Exécutez la ligne suivante pour prendre en compte ces modifications :

# sysctl -p

Ensuite, ajoutez les lignes suivantes à /etc/security/limits.conf :

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

Maintenant créez les liens symboliques suivants :

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

Maintenant vous allez volontairement induire en erreur l'installeur en lui faisant croire que vous êtes en train de procéder à l'installation sur une Red Hat, en créant et en ajoutant les lignes suivantes à /etc/redhat-release :

Red Hat Linux release 2.1 (drupal)

Installation

En vous connectant avec le login oracle, copiez les fichiers d'installation (probablement à partir d'un CD-ROM) vers un répertoire temporaire :

$ cp -r /installer/files/path/ `mktemp -d`

De manière à lancer l'installateur Oracle sans difficultés, vous devez installer le bon environnement pour qu'il s'y sente à l'aise :

#mkdir /etc/rc.d
# ln -s /etc/rc0.d /etc/rc.d/rc0.d
# ln -s /etc/rc2.d /etc/rc.d/rc2.d
# ln -s /etc/rc3.d /etc/rc.d/rc3.d
# ln -s /etc/rc4.d /etc/rc.d/rc4.d
# ln -s /etc/rc5.d /etc/rc.d/rc5.d
# ln -s /etc/rc6.d /etc/rc.d/rc6.d
# ln -s /etc/init.d /etc/rc.d/init.d

En vous assurant que vous êtes toujours dans le même répertoire où vous avez copié les fichiers, lancez l'installateur :

$ ./runInstaller

L'installeur d'Oracle vous arrêtera deux fois durant l'installation, et vous demandera de lancer les scripts qui paramètrent le basique : les permissions, etc… . Après que vous ayez lancé le deuxième script (root.sh), Oracle installe un service nommé « init.cssd ». Le script « root.sh » attend 10 minutes que le service soit commencé avant d'aller plus loin. Le message sur la console est le suivant, 600 secondes, soit 10 minutes à attendre :

Expecting the CRS daemons to be up within 600 seconds.

On va donc paramétrer autre chose, profitons ! Il y a 3 choses que vous devez faire. Premièrement, Vous devez éditer /etc/inittab pour paramétrer les runlevels actifs sur 23 (par défaut sur Debian/Ubuntu) à la place de 35 (par défauts sur Red Hat et Suse). C'est cette ligne que vous devez modifier :

h1:35:respawn:/etc/init.d/init.cssd run >/dev/null 2>&1 </dev/null

Il faut la remplacer par celle-ci :

h1:23:respawn:/etc/init.d/init.cssd run >/dev/null 2>&1 </dev/null

Ensuite allez à la ligne 83 et remplacer son contenu par

SU="/bin/su"

Enfin, laisser init recommencer le service:

# init q

À ce moment, le script « root.sh » devrait avoir presque fini, comme prévu et vous devriez pouvoir fonctionner avec l'installeur graphique.

Lancer et arrêter le serveur

À ce moment, vous devez ajouter un autre script ini pour faire redémarrer Oracle au boot. Mais avant, vous devez faire attention aux liens cassés que l'installeur a créé pour vous:

# rm /etc/rc2.d/[SK]96*
# rm /etc/rc3.d/[SK]96*
# rm /etc/rc5.d/[SK]96*
# update-rc.d init.cssd defaults 96

En dessous, il y a le script init, qui a été amélioré et qui est basé sur [http://www.togaware.com/linux/survivor/Starting_Stopping.shtml]. Ce script démarre / arrête votre environnement oracle, les listeners, et le management de l'interface web de votre entreprise. Vous devriez donc changer ORACLE_HOME, ORACLE_SID, et les variables ORA_OWNR à votre panel d'administration. Il est nommé /etc/init.d/oracledb mais le nom n'a pas d'importance.

#!/bin/bash
#
# /etc/init.d/oracledb
#
# Run-level Startup script for the Oracle Instance, Listener, and 
# Web Interface


export ORACLE_HOME=/your/oracle/home/goes/here
export ORACLE_SID=oraclesidgoeshere
export PATH=$PATH:$ORACLE_HOME/bin

ORA_OWNR="oracleownergoeshere"

# if the executables do not exist -- display error

if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_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 "$ORACLE_HOME/bin/lsnrctl start"
        su $ORA_OWNR -c $ORACLE_HOME/bin/dbstart
        touch /var/lock/oracle

        su $ORA_OWNR -c "$ORACLE_HOME/bin/emctl start dbconsole"
        echo "OK"
        ;;
    stop)
        # Oracle listener and instance shutdown
        echo -n "Shutdown Oracle: "
        su $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop"
        su $ORA_OWNR -c $ORACLE_HOME/bin/dbshut
        rm -f /var/lock/oracle

        su $ORA_OWNR -c "$ORACLE_HOME/bin/emctl stop dbconsole"
        echo "OK"
        ;;
    reload|restart)
        $0 stop
        $0 start
        ;;
    *)
        echo "Usage: `basename $0` start|stop|restart|reload"
        exit 1
esac
exit 0

Une fois cela en place, faite un exécutable, et liez-le à tous les runlevels :

# chmod 755 /etc/init.d/oracledb
# update-rc.d oracledb defaults 99

Avant vous démarrez votre nouvelle base de donnée, nous avons quelques commandes à faire:

  • /usr/local/bin/dbhome a besoin que les variables ORAHOME, ORASID, et ORATAB (/etc/oratab) soient changées
  • /your/oracle/home/bin/dbhome a le même besoin que celui décrit ci-dessus
  • /your/oracle/home/bin/dbshut a le même besoin que celui décrit ci-dessus
  • /your/oracle/home/dbstart a besoin que la variable ORATAB change, probablement aussi la variable ORACLE_HOME_LISTENER.

Pour toutes les bases de données, que vous créez et qui seront lancées au boot, vous devriez modifier le fichier /etc/oratab en conséquence.

Par exemple, remplacez :

dbname:/opt/oracle/:N

par :

oracle:/opt/oracle:Y

À ce moment vous devez être prêt à partir. Pour travailler proprement, il y a ces variables à paramétrer :

  • ORACLE_HOME
  • ORACLE_SID
  • PATH

Il y a beaucoup de manière de faire cela, je vous laisse donc le soin de rechercher de faire cela par vous même ! Une fois que vous rebootez et redémarrer la base de donnée, vérifiez que tout est en place. C'est à dire que tout est lancé normalement par sqlplus ou loggez-vous à cet interface web:

http://urlgoeshere.com:5500/em

C'est parti !

Voir aussi



Le contenu de ce wiki est sous licence : CC BY-SA v3.0