Cambiar el entorno de sesión de Oracle al vuelo
Cuando tenemos varias instalaciones de binarios de Oracle en un mismo host ( multihomed ) como por ejemplo ASM + varias bases de datos con varios juegos de binarios y tenemos que actuar en uno determinado ( asmcmd, listeners, arranque y parada de instancias ) debemos modificar variables de entorno ( ORACLE_SID, ORACLE_HOME, PATH...) para que apunten al entorno en el que queremos trabajar. Normalmente se dispone de una serie de scripts que modifican en parte dichas variables de entorno, cambiando ORACLE_BASE y ORACLE_HOME/SID pero para PATH normalmente lo que se hace es añadir al principio el valor del nuevo ORACLE_HOME/bin y exportar la variable. Con unos cambios de estos podemos terminar con una variable de PATH bastante extensa a la par que 'sucia'.
Dejo aquí un script para cambiar los valores típicos del entorno Oracle de una manera más limpia, o al menos eso creo yo :)
De lo que se trata es de, basándose en el ORACLE_HOME actual, buscarlo en el contenido del PATH actual y sustituirlo por el nuevo ORACLE_HOME que vamos a usar, exportando después este cambio como PATH.
Por ejemplo, estos son los 2 scripts necesarios para cambiar de un entorno ASM a un entorno de base de datos ( sid = test ). Yo siempre los ubico en ~/bin del usuario oracle
carga_entorno_asm
export ORACLE_BASE=/u01/app/oracle
export ORACLE_ASM=$ORACLE_BASE/product/10.2.0/ASM
export PATH=`echo $PATH | sed "s|$ORACLE_HOME|$ORACLE_ASM|g"`
export ORACLE_HOME=$ORACLE_ASM
export ORACLE_SID=+ASM
carga_entorno_bdtest
export ORACLE_BASE=/u01/app/oracle
export ORACLE_TEST=$ORACLE_BASE/product/10.2.0/TEST
export PATH=`echo $PATH | sed "s|$ORACLE_HOME|$ORACLE_TEST|g"`
export ORACLE_HOME=$ORACLE_TEST
export ORACLE_SID=TEST
Cada vez que tengamos que cambiar de entorno solo tendremos que ejecutar . $HOME/bin/carga_entorno_xxxx y lo tendremos disponible inmediatamente y libre de suciedad
También acostumbro a crear alias en ~/.bash_profile para cada carga de entorno, del tipo
alias cea='. ~/bin/carga_entorno_asm'
alias cet='. ~/bin/carga_entorno_bdtest'
y así agilizar los cambios
HTH
( If you want this post translated to english, let me know )
23:35 | 1 Comments

