Oracle est la base de données phare de l'éditeur du même nom, utilisée pour des grosses applications et des gros volumes de données. Toute une suite de produits de l'éditeur existe autour de la base pour administrer, optimiser, déployer... Oracle fournit aussi une version limitée de son produit pour les développeurs, il s'agit de Oracle Express. C'est une base qu'on va utiliser pour développer et distribuer de modestes applications ou pour mettre au point du code déployé sur des vraies bases Oracle en production. Les limitations sont les suivantes : un seul processeur exploité, 1 Go de RAM max utilisé et stockage de 11 Go de données maximum.
Oracle Express est proposée pour Ms Windows et GNU/Linux en 64 bits en paquet RPM. J'ai décrit ci-après l'installation type sur un serveur Centos. La procédure n'est pas complexe mais il y a quelques écueils qui justifient cet article.
J'ai effectué l'installation de base d'un Centos 6.6 en 64 bits. Un pré-requis à respecter, sinon Oracle refuse de s'installer, est la création d'une partition de swap au moins égale à 2x la quantité de RAM de la machine.
On télécharge Oracle Express depuis le site officiel. On récupère un fichier ZIP qui contient le paquet RPM. On installe unzip sur Centos et le paquet bc nécessaire à l'installeur Oracle.
$ yum install unzip bc
Oracle a besoin que le nom du serveur (aka hostname) soit associé à une adresse IP. La solution simple est d'éditer le fichier /etc/hosts du serveur et ajouter une entrée avec le nom du serveur et son adresse IP. Désormais, nous sommes prêt à démarrer l'installation. On dézippe l'archive et on installe paquet rpm :
$ unzip oracle-xe-11.2.0-1.0.x86_64.rpm
$ rpm -ivh oracle-xe-11.2.0-1.0.x86_64.rpm
Quand le paquet oracle-xe est installé, il reste à configurer la base avec la commande configure du service oracle-xe :
$ /etc/init.d/oracle-xe configure
Oracle Database 11g Express Edition Configuration
-------------------------------------------------
This will configure on-boot properties of Oracle Database 11g Express
Edition. The following questions will determine whether the database should
be starting upon system boot, the ports it will use, and the passwords that
will be used for database accounts. Press <enter> to accept the defaults.
Ctrl-C will abort.
Specify the HTTP port that will be used for Oracle Application Express [8080]:
Specify a port that will be used for the database listener [1521]:
Specify a password to be used for database accounts. Note that the same
password will be used for SYS and SYSTEM. Oracle recommends the use of
different passwords for each database account. This can be done after
initial configuration:
Confirm the password:
Do you want Oracle Database 11g Express Edition to be started on boot (y/n) [y]:y
Starting Oracle Net Listener...Done
Configuring database...Done
Starting Oracle Database 11g Express Edition instance...Done
Installation completed successfully.</enter>
En laissant les choix par défaut, on confime le port HTTP, le port du Listener, on choisit un mot de passe pour les comptes SYS et SYSTEM et on confirme le démarrage de la base au boot du serveur.
A ce stade, la base est démarrée et accessible localement. Le pare-feu de Centos est installé par défaut donc il faut ajouter des règles pour ouvrir l'accès distant ou plus brutalement désactiver le pare-feu avec la commande :
$ lokkit --disabled
L'accès local par SQLPlus nécessite de modifier l'environnement du Shell. On peut s'éviter de le faire à chaque coup en rajoutant ce qui suit à la fin du fichier /etc/profile :
export ORACLE_SID=XE
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/xe
export ORACLE_TERM=xterm
export NLS_LANG=FRENCH_FRANCE.utf8
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:$PATH
Finalement, on peut créer un utilisateur normal que l'on utilisera dans notre développement depuis SQLPlus :
SQL> connect
SQL> create user joelafrite idenfied by <password-for-joe>;
SQL> grant CREATE SESSION, ALTER SESSION, CREATE DATABASE LINK, -
CREATE MATERIALIZED VIEW, CREATE PROCEDURE, CREATE PUBLIC SYNONYM, -
CREATE ROLE, CREATE SEQUENCE, CREATE SYNONYM, CREATE TABLE, -
CREATE TRIGGER, CREATE TYPE, CREATE VIEW, UNLIMITED TABLESPACE -
to joelafrite;
L'interface Web appelée "Application Express" permet d'effectuer les tâches courantes d'administration. Je ne peux pas en dire grand chose, je ne l'ai pas utilisé. Je me cantonne à SQLPlus et JDBC. Mais cette interface est accessible depuis un navigateur à l'adresse http://localhost:8080/apex avec les informations de connexion suivantes :
Les références pour écrire cet article :
Mise à jour suite à installation sur CentOS 7 :