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.
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
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
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
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
- 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
- (en) Doc d'origine