
Daha önce Classic Architecture Goldengate için bir LAG ve Abend durumlarını takip edip mail gönderen bir script yazımız olmuştu bu yazıyı incelemek istyenler için;
Burada ise Microservice Architecture Goldengate CLI arayüzü olan adminclient ile bu LAG takibini nasıl yaparız bunu mail olarak göndermeyi ve crontab üzerinden bu işlemi schedule yapmayı göreceğiz.
Fakat burada ORacle yeni Goldengate ile harika bir ara yüz üzerinden hizmet sunmakta, çok güzel özellikleri var , fakat neden LAG ve Abend durumlarını mail ile gönderilen, hatta hataları mail ile gönderebilen bir ekran yapmamış anlamak biraz zor umarım zaman içinde bunu da eklerler.
Öncelikle bash_profile dosyamıza adminclient çalışması için düzenlememizi yapalım
export GGHOME=/goldeng/oggma/ogg/bin
export PATH=/goldeng/oggma/ogg/bin:$PATH
artık adminclient dediğimizde CLI gelecektir;
$ adminclient
Oracle GoldenGate Administration Client for Oracle
Version 21.3.0.0.0 OGGCORE_21.3.0.0.0_PLATFORMS_210728.1047
Copyright (C) 1995, 2021, Oracle and/or its affiliates. All rights reserved.
Oracle Linux 7, x64, 64bit (optimized) on Jul 28 2021 12:32:46
Operating system character set identified as UTF-8.
OGG (not connected) 1>
CLI a bağlandık ancak DB login işlemimizi ayrıca yapmamız lazım, ggs CLI dan farklı olarak adminclient CLI Goldengate çalışan makinede olması gerekmiyor, herhangi bir client makineden adminclient ile bağlantı yaparak Goldengate prosesslerini kontrol edebiliriz. Burada ilgili makine üzerinden kontrol sağlıyorum o yüzden localhost ile bağlanıyorum fakat uzak makineden bağlanmak istersem localhost yerine IP adresini ile bağlantı sağlayabiliriz;
OGG (not connected) 2> connect https://localhost:7889 deployment MAGG1 as oggadmin Password Wwelcome#123 !
OGG (https://localhost:7889 MAGG1) 3>
Prosesslerimizi kontrol edelim;
OGG (https://localhost:7889 MAGG1) 3> info all
Program Status Group Type Lag at Chkpt Time Since Chkpt
ADMINSRVR RUNNING
DISTSRVR RUNNING
PMSRVR RUNNING
RECVSRVR RUNNING
EXTRACT RUNNING E_MDMDB INTEGRATED 00:00:03 00:00:08
REPLICAT RUNNING MDMPREP1 INTEGRATED 00:00:04 00:00:00
Biraz konu dışına çıkarak adminclient ile ilgilendik, buradaki asıl amacımız, bir script hazırlayarak yukarıda gördüğümüz prosesslerin çalışma durumlarını LAG durumlarını takip edebilmekti, aşağıdaki örnek script bu işi yapıyor siz kendinize göre bunu düzenleyebilirsiniz.
https://github.com/farukcevik/bash/tree/main (oggcheck.sh)
# Oracle GOldengate 23C MA Architecture adminclient LAG and Abend fallow script
source /home/ogg/.bash_profile
LONG_SYSTEM_NAME=$(hostname -f)
SHORT_SYSTEM_NAME=$(hostname -a)
IP=$(hostname -i)
TO_MAIL_GRUBU="info@farukcevik.com.tr"
FROM_MAIL_GRUBU="goldengate@farukcevik.com.tr"
SMTP_SERVER="relay.farukcevik.com.tr"
SMTP_USER=""
SMTP_PASS=""
DBA_EMAIL=faruk.cevik@partner.turktelekom.com.tr
export GG_HOSTNAME=goldeng
logpath="/tmp"
logfile="$logpath/output_lag.txt"
BASE_DIRECTORY="$( cd -P "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Output GG information to log file
#echo 'INFO ALL' | /u02/ogg/oggtrg/ggsci > $logfile
echo "connect https://localhost:7889 deployment MAGG1 as oggadmin Password Wwelcome#123 !
info all
" | adminclient > $logfile
cat $logfile | egrep 'ADMINSRVR|DISTSRVR|PMSRVR|RECVSRVR|EXTRACT|REPLICAT'| tr ":" " " | while read LINE
do
case $LINE in
*)
PROCESS_TYPE=$(echo $LINE | awk -F" " '{print $1}')
PROCESS_STATUS=$(echo $LINE | awk -F" " '{print $2}')
PROCESS_NAME=$(echo $LINE | awk -F" " '{print $3}')
LAG_HH=$(echo $LINE | awk -F" " '{print $4}')
LAG_MM=$(echo $LINE | awk -F" " '{print $5}')
LAG_SS=$(echo $LINE | awk -F" " '{print $6}')
let "lag_sec=LAG_SS+1"
let "lag_min=LAG_MM+1"
let "lag_hou=LAG_HH+1"
if [ "$PROCESS_STATUS" != "RUNNING" ]
then
$BASE_DIRECTORY/sendEmail -t $TO_MAIL_GRUBU -f $FROM_MAIL_GRUBU -s $SMTP_SERVER -u "KONTROL ET! GG PROCESS NOT RUNING!" -m "goldengate process not running for $LONG_SYSTEM_NAME
Process Type $PROCESS_TYPE Process Name $PROCESS_NAME"
else
if [[ $lag_hou -gt 1 ]] || [[ $lag_min -ge 5 ]]
then
$MES_BODY+="ALERT ... Goldengate process $PROCESS_TYPE($PROCESS_NAME) has a lag of "$LAG_HH" hour "$LAG_MM" min on ($SHORT_SYSTEM_NAME) \n"
$BASE_DIRECTORY/sendEmail -t $TO_MAIL_GRUBU -f $FROM_MAIL_GRUBU -s $SMTP_SERVER -u "LAG VAR! - $SISTEM_ADI - LAG VAR!" -m "ALERT ... Goldengate process \"$PROCESS_TYPE($PROCESS_NAME)\" has a lag of "$LAG_HH" hour "$LAG_MM" min on `uname -n` $MES_BODY"
fi
fi
esac
done
her saat başı LAG ve ABEND durumlarını bu script ile kontrol eden crontab aşağıdaki gibidir;
$ crontab -l
00 * * * * sh /home/ogg/scripts/oggcheck.sh
Bir yanıt yazın