Bounce Veritas HA Cluster resource
The following is a Korn shell script that can be used from command line or cron to bounce a Veritas HA Cluster resource. This can be useful to resolve certain problems with Oracle databases running under VHA Cluster.
The script has to be executed with root credentials. Sudo can be configured to allow authenticated user to run the db_bounce.ksh without the password.
The script includes configurable parameters for notification:
1.RECEPIENTS – a comma-separated list of e-mail addresses to be used for notification in case of a failure
2.SUBJECT – a subject line to use for e-mail notification
3.ENABLED – set to 0 to disable notification; set to 1 to enable notification
A notification is sent out only if the script fails to bring a resource online, or if the script fails to bounce a resource. A notification e-mail will include relevant error messages, the name of the server, and the name of the resource.
All information and error messages are logged to /var/log/db_bounce.log
To run the script from command line use the following syntax (database dba1t and server delphi1a are used as examples):
1.to view the list of available resources:
sudo /var/adm/bin/db_bounce.ksh -l
2.to view the properties of a particular resource:
sudo /var/adm/bin/db_bounce.ksh -v dba1t
3.to take a resource down:
sudo /var/adm/bin/db_bounce.ksh -d dba1t
4.to bring a resource up:
sudo /var/adm/bin/db_bounce.ksh -u dba1t delphi1a
5.to bounce a resource:
sudo /var/adm/bin/db_bounce.ksh -b dba1t
6.to take a resource down and bring it up on a specific server:
sudo /var/adm/bin/db_bounce.ksh -b dba1t delphi1a
Here’s an example of how to run this script from oracle cron at 3:30am Monday through Friday to bounce the dba1t database:
30 3 * * 1-5 sudo /var/adm/bin/db_bounce.ksh -b dba1t > /dev/null 2>&1
Script:
#!/bin/ksh # igor@krazyworks.com # December 6. 2005 # This script allows to restart database resources for # Veritas Cluster Server service groups. Install this script in # /var/adm/bin on the Veritas HA cluster nodes and run as root. # SYNTAX: # /var/adm/bin/db_bounce.ksh [-udbvl] [resource] [server] # SUPPORTED SYSTEMS: #--------------------------------------------------------------- # OS Name OS Version Veritas CS Version Tested #--------------------------------------------------------------- # SunOS 5.8 3.5 Y #--------------------------------------------------------------- PARM=$(echo "$#") ACTION=$(echo "$1") RESOURCE=$(echo "$2") SERVER=$(echo "$3") #--------------------------------------------------------------- # FUNCTIONS #--------------------------------------------------------------- help() { clear cat < "$TMP" mv "$TMP" "$LOG" fi } #--------------------------------------------------------------- message() { if [ ! $TAIL ] then TAIL=1 else (( TAIL = TAIL + 1 )) fi echo "`hostname` `date +'%Y-%m-%d %T'` $MSG" >> "$LOG" tail -1 "$LOG" } #--------------------------------------------------------------- warning() { cat < /dev/null 2>&1 ; echo $?` -eq 0 ] then if [ "$SERVER" ] then if [ `$HARES -display "$RESOURCE" -attribute State | fgrep -v "#" | awk '{print $3}' | fgrep -cx "$SERVER"` -ne 1 ] then MSG=$(echo "Server $SERVER is not configured to run $RESOURCE.") ; message exit 1 fi fi else MSG=$(echo "Resource $RESOURCE does not exist.") ; message exit 1 fi fi } #--------------------------------------------------------------- view_db_list() { clear $HARES -list | more } #--------------------------------------------------------------- view_db_conf() { clear $HARES -display "$RESOURCE" | more } db_down() { if [ `$HARES -display "$RESOURCE" -attribute State | grep -v "#" | grep -c ONLINE` -eq 1 ] then warning if [ ! "$SERVER" ] then SERVER=$($HARES -display "$RESOURCE" -attribute State | grep -v "#" | grep ONLINE | tail -1 | awk '{print $3}') fi $HACONF -makerw $HARES -offline "$RESOURCE" -sys "$SERVER" sleep 20 $HARES -modify "$RESOURCE" Enabled 0 if [ $? -eq 0 ] then MSG=$(echo "Changed status of resource $RESOURCE to OFFLINE") ; message $HACONF -dump -makero exit 0 else MSG=$(echo "Failed to change status of resource $RESOURCE to OFFLINE") ; message $HACONF -dump -makero exit 1 fi else MSG=$(echo "Resource $RESOURCE is already offline.") ; message exit 1 fi } #--------------------------------------------------------------- db_up() { if [ `$HARES -display "$RESOURCE" -attribute State | grep -v "#" | grep -c ONLINE` -eq 0 ] then warning if [ ! "$SERVER" ] then MSG=$(echo "No server specified to bring up resource $RESOURCE") ; message exit 1 fi $HACONF -makerw $HARES -modify "$RESOURCE" Enabled 1 sleep 20 $HARES -online "$RESOURCE" -sys "$SERVER" if [ $? -eq 0 ] then MSG=$(echo "Changed status of resource $RESOURCE to ONLINE") ; message $HACONF -dump -makero exit 0 else MSG=$(echo "Failed to change status of resource $RESOURCE to ONLINE") ; message $HACONF -dump -makero notify exit 1 fi else MSG=$(echo "Resource $RESOURCE is already online.") ; message exit 1 fi } #--------------------------------------------------------------- db_bounce() { if [ `$HARES -display "$RESOURCE" -attribute State | grep -v "#" | grep -c ONLINE` -eq 1 ] then warning if [ ! "$SERVER" ] then SERVER=$($HARES -display "$RESOURCE" -attribute State | grep -v "#" | grep ONLINE | tail -1 | awk '{print $3}') fi $HACONF -makerw $HARES -offline "$RESOURCE" -sys "$SERVER" sleep 20 $HARES -modify "$RESOURCE" Enabled 0 if [ $? -eq 0 ] then MSG=$(echo "Changed status of resource $RESOURCE to OFFLINE") ; message sleep 20 $HARES -modify "$RESOURCE" Enabled 1 sleep 20 $HARES -online "$RESOURCE" -sys "$SERVER" if [ $? -eq 0 ] then MSG=$(echo "Changed status of resource $RESOURCE to ONLINE") ; message $HACONF -dump -makero exit 0 else MSG=$(echo "Failed to change status of resource $RESOURCE to ONLINE") ; message $HACONF -dump -makero notify exit 1 fi else MSG=$(echo "Failed to change status of resource $RESOURCE to OFFLINE") ; message $HACONF -dump -makero notify exit 1 fi else MSG=$(echo "Resource $RESOURCE is already offline.") ; message exit 1 fi } #--------------------------------------------------------------- # RUNTIME #--------------------------------------------------------------- log configure tockens input_check case "$ACTION" in -d) db_down ;; -u) db_up ;; -b) db_bounce ;; -v) view_db_conf ;; -l) view_db_list ;; *) help ;; esac
I read on bestplaces.com that both cities ranked in the top ten for places to relocate. I’m curious to hear from ppl who live in these cities. Thanks.
He looks like a bunch of leaves.
My question means like stuff to make it seem like im fashionable (which I am). I already have a mannequin and am using that as an example for answers!
…a restaurant (ha, only spelt it wrong three times this time) or a bar?
What kind of bar/restaurant is it?
BQ – If you had to enter an eating competition, what food would you pick?
BQ2 – Have you got any amusing child hood memories?
RBQ – Books and authors people are very unhelpful, soooo are any of you fans of Oscar Wilde as an author?