Installation Oracle 10g dans un VPS OpenVZ ubuntu 8.04

réf : http://www.oracle.com/technology/software/products/database/xe/files/install.102/b25144/toc.htm
       http://wiki.openvz.org/Oracle_XE_%28APEX%29_and_shared_memory#Oracle_XE
      http://forums.oracle.com/forums/thread.jspa?messageID=2830883&tstart=0

Le but est d'installer la version gratuite d'Oracle 10g dans un container OpenVZ déployé avec un template Ubuntu 8.04.

Installation Oracle 10g xe

Après avoir créé un compte en ligne chez Oracle, on récupère ici : http://www.oracle.com/technology/software/products/database/xe/htdocs/102xelinsoft.html la version serveur de Oracle 10g Express Edition pour Linux : oracle-xe_10.2.0.1-1.0_i386.deb

On installe d'abord quelques dépendances non triviales :
apt-get install libaio1 bc

On installe le paquet :
dpkg -i oracle-xe_10.2.0.1-1.0_i386.deb

On configure :
/etc/init.d/oracle-xe configure

On laisse les ports par défaut et on choisit un mot de passe d'administration.
On corrige un petit bug dans le script d'initialisation de l'environnement
nano /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/nls_lang.sh
 => remplacer les "[[ ]]" par des "[ ]" à la ligne 114
On édite le .bashrc et le .bash_profile et on ajoute à la fin le script de configuration de l'environnement (exécutable par tout utilisateur, il définit entre autres le ORACLE_SID et le ORACLE_HOME) :
. /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh

Et on lance Oracle :
/etc/init.d/oracle-xe start

Si seul le listener fonctionne, il y a peut-être un problème de mémoire partagée (shared memory) pour le VPS.
On regarde la quantité de mémoire partagée maximum du système dans le conteneur :
ipcs -l
j'obtiens par exemple :
max total shared memory (kbytes) = 8388608

On vérifie sur l'hôte OpenVZ, dans le fichier de configuration du VPS, les limites de SHMPAGES (shared memory = shmpages * 4 Kb sur un x86). Si les valeurs de shmpages sont inférieures au nombre de pages nécessaire pour allouer  8388608 kb  (soit 8388608/4 = 2097152 pages), on change la valeur de SHMPAGES dans /etc/vz/conf/idVPS.conf :
SHMPAGES="2097152:2097152"
Et on  relance le VPS depuis l'hôte (HN).

vzctl stop idVPS
vzctl start idVPS


Installation d'un frontal (reverse proxy web) https


L'objet est de pouvoir accèder de façon sécurisée au gestionnaire sur le port 8080 d'Oracle.
On installe apache et on active le mod_proxy et ssl
apt-get install apache2 openssl
a2enmod proxy
a2enmod proxy_http
a2enmod ssl

On autorise les réquêtes sur le proxy :
nano /etc/apache2/mods-enabled/proxy.conf
<Proxy *>
       AddDefaultCharset off
       Order allow,deny
       Allow from all
</Proxy>
On crée un certificat maison :
openssl req -x509 -nodes -days 3650 -newkey rsa:1024 -out /etc/apache2/server.crt -keyout /etc/apache2/server.key

On crée un virtual host
a2dissite default
nano /etc/apache2/sites-available/proxy-oracle

NameVirtualHost 10.10.10.4:443

# Redirecteur oracle.mondomaine.local port 443 SSL
<VirtualHost 10.10.10.4:443>
  ServerName oracle.modomaine.local
  SSLEngine on
  SSLCertificateFile /etc/apache2/server.crt
  SSLCertificateKeyFile /etc/apache2/server.key
  ProxyPass          /          http://127.0.0.1:8080/
  ProxyPassReverse   /          http://127.0.0.1:8080/
</VirtualHost>

Par défaut, et à moins qu'on change dans la base système d'Oracle le paramètre du Local Listener Access de TRUE à FALSE (cf §4.4 de http://www.oracle.com/technology/software/products/database/xe/files/install.102/b25144/toc.htm ), Oracle n'écoute en http sur le port 8080 que depuis le localhost.

On active le virtual host et on relance apache.
a2ensite proxy-oracle
/etc/init.d/apache2 restart

Oracle est maintenant accessible sur https://oracle.mondomaine.local/apex
Comments