Master in Data Analyst | New Batch Starting From 10th Oct 2025 at 6 PM IST | Register for Free Demo

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 AvatarKiran Dalvi
  • 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!