Wednesday, April 25, 2012

Check Listener status

srv1:oracle$ srvctl status scan_listener
SCAN Listener LISTENER_SCAN1 is enabled
SCAN listener LISTENER_SCAN1 is running on node srv2
SCAN Listener LISTENER_SCAN2 is enabled
SCAN listener LISTENER_SCAN2 is running on node srv1
SCAN Listener LISTENER_SCAN3 is enabled
SCAN listener LISTENER_SCAN3 is running on node srv3


 
srv1:oracle$ srvctl status listener
Listener LISTENER is enabled
Listener LISTENER is running on node(s): srv1,srv2,srv3
srv1:oracle$ srvctl status scan
SCAN VIP scan1 is enabled
SCAN VIP scan1 is running on node srv2
SCAN VIP scan2 is enabled
SCAN VIP scan2 is running on node srv1
SCAN VIP scan3 is enabled
SCAN VIP scan3 is running on node srv3

mysrv1:PRD:crs:/home/oracle/:>./crsstat.sh | grep -i lsnr
ora.LISTENER.lsnr                 ONLINE     ONLINE on mysrv1
ora.LISTENER_SCAN1.lsnr           ONLINE     ONLINE on mysrv1
ora.LISTENER_SCAN2.lsnr           ONLINE     ONLINE on mysrv3
ora.LISTENER_SCAN3.lsnr           ONLINE     ONLINE on mysrv2
ora.mysrv1.LISTENER_mysrv.lsnr    ONLINE     ONLINE on mysrv
ora.mysrv2.LISTENER_MYSRV1.lsnr   ONLINE     ONLINE on mysrv2
ora.mysrv3.LISTENER_MYSRV2.lsnr   ONLINE     ONLINE on mysrv3



crsstat.sh

#!/usr/bin/ksh
#
# Sample 10g CRS resource status query script
#
# Description:
# - Returns formatted version of crs_stat -t, in tabular
# format, with the complete rsc names and filtering keywords
# - The argument, $RSC_KEY, is optional and if passed to the script, will
# limit the output to HA resources whose names match $RSC_KEY.
# Requirements:
# - $ORA_CRS_HOME should be set in your environment

RSC_KEY=$1
QSTAT=-u
AWK=/usr/bin/awk # if not available use /usr/bin/awk

# Table header:echo ""
$AWK \
'BEGIN {printf "%-45s %-10s %-18s\n", "HA Resource", "Target", "State";
printf "%-45s %-10s %-18s\n", "-----------", "------", "-----";}'

# Table body:
$ORA_CRS_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;}'

No comments: