feedburner

Lorem ipsum dolor sit amet,
consectetur adipisicing elit,
sed do eiusmod tempor incididunt ut labore
et dolore magna aliqua.

Cambiar el entorno de sesión de Oracle al vuelo

Etiquetas:

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 )

1 comentarios:
gravatar
Mallén González dijo...
miércoles, 11 de marzo de 2009, 15:53:00 CET  

Hola, sabes tengo un problema q se relaciona a las variables de entorno.

Tengo una aplicación, en .net, para la q utilizamos cliente Oracle 10G (instalo el Oracle Network utilities), Funciona bien sin embargo en una de las máquinas, al echar andar la aplicación, despues de instalada me arroja lo siguiente:

"Could not create an environment: OCIEnvCreate
returned -1. "

La carpeta Cliente, tiene los permisos de lectura y escritura,
y el equipo tiene 3 perfiles, 2 de administrador y Uno de usuario(permisos restringidos), pero en este caso el arror , aparece independiente del usuario.

He econtrado ciertos links, pero no me quedan claros , por ejemplo:

http://forums.asp.net/t/97914.aspx
http://www.velocityreviews.com/forums/t68938-systemdataoracleclient-problem-could-not-create-an-environment-ocienvcreate-returned-1.html

Cualquier ayuda o referencia desde ya gracias.

Publicar un comentario