This site has been destroyed by Google forced upgrade to new way of WEB site.
All files links are not working. Many images has been lost in conversation.
Have to edit 190 pages manually. Will try to do ASAP but for this I need time ...
THANK YOU GOOGLE !

Thursday, February 17, 2011

master.sh script for Oracle RAC

For a long time, in RAC environment, I use famous Bernhard de Cock Buning's script which shows current master node in Oracle RAC. Script is originally downloaded from RACHelp site where you can find a lot of nice RAC scripts.

But execution of script had a little bug, when one of the RAC nodes is down-script hang! This is why I have added ssh ConnectTimeout parameter which solve this problem fully.

Here is the whole source of changed script:
#!/bin/sh
#
#
# Requirements:
# - Make sure the ORA_CRS_HOME / ORACLE_HOME is set to the CRS environment.
# - Make sure all the nodes in the cluster can be accessed trough ssh.
# Version:
# - version 1.0
# - Bernhard de Cock Buning
# -> master.sh
# -> 1.0 Initial creation of masternode information script.
# - www.rachelp.nl / GRID-IT
#
# -> 1.1 added "-o ConnectTimeout=5" when node is down -script hang otherwise!
# - Damir Vadas
# - http://damir-vadas.blogspot.com/

#set -x -v
#exec >> /tmp/master_node.log 2>&1

ORA_CRS_HOME=$ORACLE_HOME
SSH=/usr/bin/ssh
NODES=`$ORA_CRS_HOME/bin/olsnodes`
HIGHEST_HOSTNAME=""
HIGHEST_VALUE=0

for I in $NODES
do
CURRENT_HOSTNAME=$I
CURRENT_VALUE=`$SSH -o ConnectTimeout=5 $I grep clssgmEstablishMasterNode $ORA_CRS_HOME/log/$I/cssd/ocssd.l* | tail -1 | tr -d CSSD] | awk '{print $2 $3}' | tr -d ':.-'`
if [[ $(( $(echo $CURRENT_VALUE ) - $(echo $HIGHEST_VALUE ) )) > 0 ]] ;
then
HIGHEST_VALUE=$CURRENT_VALUE
HIGHEST_HOSTNAME=$CURRENT_HOSTNAME
fi
done
MASTERNODE=`$SSH $HIGHEST_HOSTNAME grep clssgmEstablishMasterNode $ORA_CRS_HOME/log/$HIGHEST_HOSTNAME/cssd/ocssd.l* | tail -1 | awk '{print $11}' | tr -d 'node()'`
echo "Masternode is node with number: $MASTERNODE"
$ORA_CRS_HOME/bin/olsnodes -n 

Modified script output in a case when iis2 node is down looks like:
[oracle CRS@iis4 ~]$ master
ssh: connect to host iis2 port 22: No route to host
Masternode is node with number: 1
iis1      1
iis2      2
iis3      3
iis4      4
[oracle CRS@iis4 ~]$

Hope this helps someone. Cheers!

No comments :

Post a Comment

Zagreb u srcu!

Copyright © 2009-2018 Damir Vadas

All rights reserved.


Sign by Danasoft - Get Your Sign