Shell Script To Monitor Lag In Standby Datbase Using Dgmgrl

Breadcrumb Abstract Shape
Breadcrumb Abstract Shape
Breadcrumb Abstract Shape
Breadcrumb Abstract Shape
Breadcrumb Abstract Shape
Breadcrumb Abstract Shape
  • User AvatarANKUSH THAVALI
  • 01 Oct, 2023
  • 0 Comments
  • 56 Secs Read

Shell Script To Monitor Lag In Standby Datbase Using Dgmgrl

SCRIPT PREPARATION:

PRIMARY DB UNIQUE_NAME –  PRIM
STANDBY DB UNIQUE_NAME – STANDBY

 
#!/bin/bash


export ORACLE_HOME=/oracle/app/oracle/product/12.1.0/dbhome_1

export ORACLE_SID=PRIM

export PATH=$ORACLE_HOME/bin:$PATH

echo -e “show database STANDBY”|${ORACLE_HOME}/bin/dgmgrl sys/orcl1234 > DB_DG_DATABASE.log

cat /home/oracle/DB_DG_DATABASE.log | grep “Apply Lag” > FILTERED_DB_DG_DATABASE.log
time_value=`cut -d ” ” -f 14 FILTERED_DB_DG_DATABASE.log`
time_param=`cut -d ” ” -f 15 FILTERED_DB_DG_DATABASE.log`

if [[ “$time_param” == “minutes” && “$time_value” -ge 1 ]]
then
mailx -s “DREAIDB LAG is in minutes ” [email protected] <DB_DG_DATABASE.log
else
if [[ “$time_param” == “seconds” && “$time_value” -ge 30 ]]
then

mailx -s “DREAIDB LAG is in seconds ” [email protected]<DB_DG_DATABASE.log

else
if [[ “$time_param” == “hour(s)” && “$time_value” -ge 1 ]]
then

mailx -s “DREAIDB LAG is in hours ” [email protected] <DB_DG_DATABASE.log
fi
fi
fi

 

Now configure the the script in crontab.
00,10,20,30,40,50 * * * * /home/oracle/dgmgrl_standby_lag.sh > /tmp/dg_lag.log

Hope it helps!