Send Status Database Oracle With E-mail

20 Sep

Liburan panjang kantor – kantor tutup, tetapi karena berbagai pertimbangan menyebabkan Administrator Server / DBA tidak boleh mematikan server. Selain piket dengan datang secara fisik ke kantor, alternatif lainnya adalah mengirim status server lewat e-mail dan tentunya dapat dikembangkan dengan menggunakan sms phone.

Saya menggunakan SendEmail, karena pertimbangan
a. lightweight
b. command line SMTP email client
c. free program
d. simple to use
e. feature rich

1. download file
http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.55.tar.gz
2. Extract the package
[root@iscdd ]# tar xvzf sendEmail-v1.55.tar.gz -C /usr/local/src/
3. Copy the sendEmail script to /usr/local/bin
[root@iscdd ]# cp /usr/local/src/sendEmail-v1.55/sendEmail /usr/local/bin
4. Make sure executable
[root@iscdd ]# chmod +x /usr/local/bin/sendEmail
5. Run it
[root@iscdd ]# su – oracle
[oracle@iscdd ~]$ df -h /u01 | sendEmail -f rukr@ubslinux.com -u sisa harddisk  -s 172.20.140.31:25 -t seag@ubslinux.com

Keterangan :
hasil perintah linux df -h /u01 akan dikirim
-f (from) rukr@ubslinux.com
-u (subject) sisa harddisk
-s (mail server ) 172.20.140.31:25
-t (alamat email yang dituju) seag@ubslinux.com

6. status database oracle
a. membuat script berdasarkan dari –> http://www.dbazine.com/oracle/or-articles/liu2
b. penyesuaian script ckinstance.ksh, inti dari script ini memeriksa apakah proses oracle
di linux masih jalan, yaitu dengan mengunakan perintah
[oracle@iscdd script]$ ps -ef | grep pmon
oracle   30611     1  0 May14 ?        00:02:24 ora_pmon_iscdd
oracle   26369 26206  0 08:24 pts/2    00:00:00 grep pmon

[oracle@iscdd script]$ vi ckinstance.ksh
###################################################################
## ckinstance.ksh ##
###################################################################
ORATAB=/etc/oratab
db=`egrep -i “:Y|:N” $ORATAB | cut -d”:” -f1 | grep -v “#” | grep -v “*”`
pslist=”`ps -ef | grep pmon`”

for i in $db ; do
echo “$pslist” | grep  “ora_pmon_$i”  > /dev/null > hasil
if (( $hasil )); then
hasil=” `date` `hostname` : Oracle Instance – $i:  Down”
else
hasil=” `date` `hostname` : Oracle Instance – $i:  Up”
fi
echo “$hasil” | /usr/local/bin/sendEmail -f root@ubslinux.com -u server ppc  -s 172.20.140.31:25 -t seag@ubslinux.com
done
rm hasil -f

[oracle@iscdd script]$ chmod 777 ckinstance.ksh
[oracle@iscdd script]$ ./ckinstance.ksh

c. hasil email
Thu Sep 18 09:38:32 WIT 2008 iscdd : Oracle Instance – iscdd:  Up
d. membuat schedulle dengan crontab, dimana script akan dijalankan setiap 20 menit
Minute             0-59
Hour             0-23
Day of month     1-31
Month             1 – 12
Day of Week     0 – 6, with 0 = Sunday

[oracle@iscdd script]$ crontab -e
0,20,40 * * * * /home/oracle/script/ckinstance.ksh

4 Responses to “Send Status Database Oracle With E-mail”

  1. Mas Rony September 22, 2008 at 1:57 pm #

    Tambah sipp aja neh pak setijo..🙂
    Nice artikel pak… nyoba deh ntar masang gitu…

  2. setijoagus September 23, 2008 at 4:40 am #

    Thank’s atas comment nya

  3. dani November 14, 2008 at 10:40 am #

    pak ketika saya jalankan sendEmail keluar error sbb :

    Nov 14 17:30:30 oraift sendEmail[9133]: Message input complete.
    Nov 14 17:30:31 oraift sendEmail[9133]: ERROR => Connection attempt to 192.168.1.52:25 failed: IO::Socket::INET: connect: Connection refused

    mohon pencerahan

  4. setijoagus November 15, 2008 at 12:59 am #

    yang perlu diperhatikan dari “Send Status Database Oracle With E-mai” adalah
    1.> script oracle untuk periksa status, yang diwakili o/
    db=`egrep -i “:Y|:N” $ORATAB | cut -d”:” -f1 | grep -v “\#” | grep -v “\*”`
    pslist=”`ps -ef | grep pmon`”

    for i in $db ; do
    echo “$pslist” | grep “ora_pmon_$i” > /dev/null > hasil
    if (( $hasil )); then
    hasil=” `date` `hostname` : Oracle Instance – $i: Down”
    else
    hasil=” `date` `hostname` : Oracle Instance – $i: Up”
    fi

    2. > script untuk kirim email :
    echo “$hasil” | /usr/local/bin/sendEmail -f root@ubslinux.com -u server ppc -s 172.20.140.31:25 -t seag@ubslinux.com

    error Bpk, kelihatannya gagal dlm pengiriman status database-nya
    a. coba diperiksa secara manual kirim email secara langsung menggunakan sendEmail ?
    b. apakah sudah benar ip server mailnya ?, dalam contoh saya 172.20.140.31:25 dan saya menggunakan postfix untuk mail server saya.
    c. apakah alamat email yang dituju sdh benar ?

    semoga membantu

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: