Nos hemos mudado a bloger!
El contenido actualizado de esta entrada lo tienes en:
http://dba.pamplona.name/2013/12/estado-del-clusterracgrid-tabulado.html
Hoy vamos a ver una entrada de esas sencillas para hacernos la vida mas fácil.
Cuando ejecutamos el comando para ver el estado de un cluster, nos solemos encontrar con esto :
grid@rac1:/opt/oracle/10.2/CRS/bin$ crs_stat -t Name Type Target State Host ------------------------------------------------------------ ora....SM1.asm application ONLINE ONLINE oradb1 ora....D1.lsnr application ONLINE ONLINE oradb1 ora.oradb1.gsd application ONLINE ONLINE oradb1 ora.oradb1.ons application ONLINE ONLINE oradb1 ora.oradb1.vip application ONLINE ONLINE oradb1 ora....SM2.asm application ONLINE ONLINE oradb2 ora....D2.lsnr application ONLINE ONLINE oradb2 ora.oradb2.gsd application ONLINE ONLINE oradb2 ora.oradb2.ons application ONLINE ONLINE oradb2 ora.oradb2.vip application ONLINE ONLINE oradb2 ora....robd.db application ONLINE ONLINE oradb1 ora....dmin.cs application OFFLINE OFFLINE ora....bd1.srv application OFFLINE OFFLINE ora....ckup.cs application OFFLINE OFFLINE ora....bd2.srv application OFFLINE OFFLINE ora....atch.cs application OFFLINE OFFLINE ora....bd2.srv application OFFLINE OFFLINE ora....oltp.cs application OFFLINE OFFLINE ora....bd1.srv application OFFLINE OFFLINE ora....bd2.srv application OFFLINE OFFLINE ora....d1.inst application ONLINE ONLINE oradb1 ora....d2.inst application ONLINE ONLINE oradb2
Realmente no nos sirve de mucho ya que queda todo apiñado,y no nos permite saber que componente está arrancado y cual eta parado.
Navegando por internet vi en un par de webs (perdón pero no recuerdo el lugar) el siguiente scipt en ksh
!/usr/bin/ksh
#
# $GRID_HOME debe de estar definido en el entorno
#
RSC_KEY=$1
QSTAT=-u
AWK=/bin/awk
# Table header:echo ""
$AWK \
'BEGIN {printf "%-45s %-10s %-18s\n", "HA Resource", "Target", "State";
printf "%-45s %-10s %-18s\n", "-----------", "------", "-----";}'
# Table body:
$GRID_HOME/bin/crs_stat $QSTAT | $AWK \
'BEGIN { FS="="; state = 0; }
$1~/NAME/ && $2~/'$RSC_KEY'/ {appname = $2; state=1};
state == 0 {next;}
$1~/TARGET/ && state == 1 {apptarget = $2; state=2;}
$1~/STATE/ && state == 2 {appstate = $2; state=3;}
state == 3 {printf "%-45s %-10s %-18s\n", appname, apptarget, appstate; state=0;}'
Este script nos devuelve una salida limpia al estilo de :
grid@rac1:/opt/oracle/10.2/CRS/bin$ ./crsstat.sh HA Resource Target State ----------- ------ ----- ora.oradb1.ASM1.asm ONLINE ONLINE on oradb1 ora.oradb1.LISTENER_oradb1.lsnr ONLINE ONLINE on oradb1 ora.oradb1.gsd ONLINE ONLINE on oradb1 ora.oradb1.ons ONLINE ONLINE on oradb1 ora.oradb1.vip ONLINE ONLINE on oradb1 ora.oradb2.ASM2.asm ONLINE ONLINE on oradb2 ora.oradb2.LISTENER_oradb2.lsnr ONLINE ONLINE on oradb2 ora.oradb2.gsd ONLINE ONLINE on oradb2 ora.oradb2.ons ONLINE ONLINE on oradb2 ora.oradb2.vip ONLINE ONLINE on oradb2 ora.rac.db ONLINE ONLINE on oradb1 ora.rac_admin.cs OFFLINE OFFLINE ora.rac_admin.rac1.srv OFFLINE OFFLINE ora.rac_backup.cs OFFLINE OFFLINE ora.rac_backup.rac2.srv OFFLINE OFFLINE ora.rac_batch.cs OFFLINE OFFLINE ora.rac_batch.rac2.srv OFFLINE OFFLINE ora.rac_oltp.cs OFFLINE OFFLINE ora.rac_oltp.rac1.srv OFFLINE OFFLINE ora.rac_oltp.rac2.srv OFFLINE OFFLINE ora.rac.rac1.inst ONLINE ONLINE on oradb1 ora.rac.rac2.inst ONLINE ONLINE on oradb2
Nota posteriormente me he encontrado con que era un script documentado por Oracle en la nota 259301.1 :
CRS and 10g/11.1 Real Application Clusters (Doc ID 259301.1)