Cette page est en cours de rédaction.
Apportez votre aide…

Ceci est une ancienne révision du document !



Oracle™ Database

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

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ée et son SID (Oracle System ID) vaudra par défaut "XE".

Pré-requis

Matériel nécessaire

Comme d'habitude, Oracle a besoin de beaucoup de ressources, avec un minimum pour le serveur de 512 MBytes de Ram et de 1024 MBytes de Swap ainsi que de 1.5 Gbytes d'espace disque libre. Ces 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

Installation des bibliothèques dépendantes

On a besoin seulement d'une bibliothèque et d'un outil:

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

Exécutez la commande suivante sur un émulateur de terminal :

sudo apt-get install libaio1 bc

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

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 -

Il y a ensuite mettre à jour la liste des paquets des dépôts et installer les trois packages suivant (dans le synaptic ou dans une console):

  • 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 package 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

Ou 'count' est le nombre de Mo à rajouter à votre swap existant pour arriver au 1006Mo requis par Oracle XE

Puis mise au format swap,

sudo  mkswap /swapfile

Enfin activation,

sudo swapon /swapfile

Merci à 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/bin
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
Note importante

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

2- 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, éditez 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

Pré-requis

A minima, vous devez disposer d'au moins 500 Mo de Ram, de 1 Go 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 et/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 suivants à /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'installateur 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 cdrom) 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 nomé 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éfauts sur Debian/Ubuntu) à la place de 35 (par défauts sur Red Hat et Suse). C'est cette ligne que vous devez éditer:

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

A 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

A 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 à tout 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 éditez le fichier /etc/oratab en conséquence.

Par exemple, remplacez:

dbname:/opt/oracle/:N

par:

oracle:/opt/oracle:Y

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


Contributeurs principaux : bud78, youp, fatahou.

  • oracle.1244306955.txt.gz
  • Dernière modification: Le 18/04/2011, 14:52
  • (modification externe)