Artículos creados en junio, 2015

rutaAlert Script

rutaAlert Script

Quienes trabajamos entre bases de datos ORACLE sobre sistemas variopintos, nos encontramos con que no siempre es fácil acordarse de las rutas de los alert.log, sobre todo cuando tienes que trabajar sobre bbdd que llevan montadas bastante tiempo y la persona que las montó lo hizo a su manera.
También es cierto que muchas otras veces, recordar o incluso «razonar» la ruta del alert.log de las instancias de oracle, puede ser un tema de vagancia mental.

Sea como sea, ya no hace falta perder ni un minuto mas pensando o buscando el alert.log de ninguna de las instancias de oracle gracias a este pequeño script, que junto con el verpmon publicado anteriormente, es uno de los que mas utilizo en el día a día.

La idea básica del script es muy simple… preguntar a la instancia por la ruta del alert.log.

Lo unico que nos pedirá el script es haber definido previamente el ORACLE_SID de la instancia.

Este es el pequeño script:


#!/bin/bash
if [ -z $ORACLE_SID ]
then
echo -e "\nERROR: ORACLE_SID esta sin definir"
else
echo -e "\nSacando ruta del alert para el ORACLE_SID=$ORACLE_SID"
sqlplus -S "/as sysdba" <

Como se puede apreciar, el script es de lo más simple. Salta a la vista que el usuario que lo lance debería poder conectarse con "/as sysdba".

Por supuesto, para que sea realmente util, habría que definirlo con un alias en los ficheros de inicio de sesión en shell para que podamos invocarlo desde donde sea (o con un enlace simbólico, eso queda al gusto del consumidor 🙂 )

Este es un ejemplo de como funciona:

ejemplo de rutaAlert

ejemplo de rutaAlert

leer más

verpmon script

verpmon script

Este script creo que es uno de los que mas he usado en los últimos años, y no porque sea imposible hacer las cosas sin el, que no es así para nada, mas bien es porque desde el momento en que te acostumbras a él, no puedes dejar de usar…

Si bien es cierto que cada vez que entro en un servidor de bbdd con varias instancias de oracle y donde sé que tendré que entrar en una y en otra instancia mas de una vez, lo primero que hago «en plan rapido» es definir este alias:


alias verpmon='ps -efa|grep _pmon|grep -v grep|cut -d "_" -f3'

Eso si, nada mas que tengo un poco de tiempo, lo afino un poco más para que sea mas rapido aun de usar…

Lo más facil es que si quieres ver los pmon de un servidor es que sea para, además de ver las instancias corriendo, ver el ORACLE_SID y definir la variable, asi que ¿No seria muy util que al mismo tiempo que vemos los pmon activos en el servidor nos escribiera la linea completa? Si, es cierto, parece que sea un tema de vagancia extrema, pero volvemos a lo mismo, si tienes una instancia, no tiene sentido usar este script, si tienes dos, podria ser excesiva tanta automatizacion pero si tienes muchas instancias, estas cosas son las que te permiten ganar mucho tiempo al hacer uso de ellas constantemente…

Veamos a que me refiero:

Preparamos el script:


#!/bin/bash
export lasInstancias=`ps -efa | grep ora_pmon|grep -v grep |awk '{split($0,a,"ora_pmon_"); print a[2]}' | grep -v print`
echo -e "Estos son los pmon activos en la maquina...: \n"
ps -efa | grep _pmon | grep -v grep
echo -e "\n\nLineas para el copy/paste:\n"
for instancia in $lasInstancias
do
echo "export ORACLE_SID=$instancia"
done
echo -e "\n\n"

 

Bien, lo guardamos y creamos el correspondiente alias apuntando  a el, y lo guardamos en el entorno de la shell:


echo "alias verpmon='/ruta/al/script/verpmon.sh'" >> $HOME/.bashrc

Ok, ahora cada vez que lancemos:

verp + tabulador + intro… nos apareceran en pantalla todos los pmon activos tal y como aparecian siempre que haciamos el ps correspondiente PERO ahora justo debajo de estos procesos, tendremos varias lineas, una por cada pmon, con la expresion «export ORACLE_SID=» + cada pmon.

Si a esto le sumamos que al hacer doble clic en la linea, no solo nos la selecciona sino que nos la deja copiada en el buffer y con otro toque de raton (Boton izq si es en putty, boton central si es fisicamente en el server) ya la podemos pegar… el resultado es que cambiamos de bbdd, exportando el sid, en 4 toques de teclado y 3 pulsaciones de raton… una vez más lo diré… si al cabo del dia cambiamos de instancias 20 veces…. se ahorra un tiempo enorme.

Tambien es cierto que si siempre tenemos X instancias, es posible que nos interese crear un script por cada una para cargar todas sus variables, pero tiene el inconveniente de que necesitan un mantenimiento, tanto si se elimina la instancia como si se añaden nuevas… con este script y el rutaAlert, citado en otro articulo, estos problemas desaparecen por completo.

Un ejemplo, de la salida del verpmon:
Ejemplo de uso de verpmon

Ejemplo de uso de verpmon

leer más