feedburner

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

undefined
undefined

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