Comment modifier la variable ORACLE_BASE

Il y a parfois de petites choses qui nous chagrinent la vie. Parmi celle-ci on trouve une variable d’environnement ORACLE_BASE mal positionnée.
On a le cas particulièrement sur les clusters ou les fichiers trace et  audit de la base ASM sont généralement dans un autre file system que ceux des bases de données.
Cela peut arriver aussi suite au mauvais positionnement de l’environnement lors de l’installation du noyau Oracle ou suite à une évolution  de l’architecture du serveur.
Si au niveau des bases de données déjà cela ne pose pas de problème, la localisation des fichiers de logs et d’audit étant fixés par les paramètres d’initialisation, Cela devient gênant lors de la création de nouvelles bases, dans ce cas il ne faut pas oublier de modifier les différents paramètres après coup, mais aussi et surtout lorsqu’il existe des scripts s’appuyant sur cette variable et notamment  les scripts de purges des fichiers de trace et d’audit.
Pour éviter d’avoir des données en dure dans les scripts et donc d’avoir un script spécifique par ORACLE_BASE, ou encore d’avoir à chercher quel est la bonne directory suivant le noyau oracle sur le quel on est positionné, il est possible de redéfinir après coup la valeur qui sera contenu dans la variable ORACLE_BASE après positionnement de l’environnement oracle par « . oraenv ».
On peut , bien sur , s’amuser a modifier à la main le fichier $ORACLE_HOME/inventory/ContentsXML/oraclehomeproperties.xml et partir à la recherche de la ligne property name= »ORACLE_BASE » pour en modifier la valeur.
On peut aussi plus simplement utiliser l’exécutable  orabase fourni par Oracle.
Son utilisation est très simple, une fois l’environnement positionné a l’aide de « . oraenv » on lance la commande suivante

. oraenv
ORACLE_SID = [oracle] ? MABDD
echo $ORACLE_BASE
/u01/app/oracle
orabase –s /new/oracle/base

Le fichier xml est modifier, il suffit de recharger l’environnement pour constater le changement.

. oraenv
ORACLE_SID = [MABDD] ?
echo $ORACLE_BASE
/new/oracle/base

A vous de jouer …