Script to delete archivelogs periodically September 20, 2008
Posted by setijoagus in Linux, Oracle Tools, oracle.Tags: archive log, Crontab, Linux, oracle
2 comments
Archive oracle harus dipantau, kalau nggak bisa habis kapasitas tempat penyimpanannya, sehingga menyebabkan
transaksi tidak dapat berjalan lagi sampai dengan ada tersedia tempat / space untuk melanjutkan transaksi.
Tetapi sebaliknya seorang dba kadang – kadang lupa (he…he..he…).
(Sebaiknya script ini digabungkan dengan RMAN atau sistem backup lainnya exp, expdp)
a. membuat script dengan ide dari –> http://www.dbazine.com/oracle/or-articles/liu2
b. penyesuaian script clean_arch.ksh, logika script ini, setelah mengisikan letak folder
archive di ARCH (mungkin folder anda berbeda), apakah sudah mencapai 85 % penggunakan
partisi dimana folder archive disimpan, jika ya cari file archive dan hapus archive
yang berusia 8 hari.
[oracle@iscdd script]$ vi clean_arch.ksh
ARCH=/home/oracle/archive
dfhasil=”`df -h $ARCH | awk ‘{ print $5 }’ | sed ’s/%//g’`”
hasil=”`echo $dfhasil | awk ‘{ print $2 }’`”
echo $hasil
if test $hasil -ge 85
then
echo “`date` `hostname` Archive Folder : $hasil %”
find /home/oracle/archive/ -type f -mtime +8 -exec ls {} ;
fi
c. membuat schedulle untuk membersihkan archive, tiap hari senin
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 6 * * 1 /home/oracle/script/clean_arch.ksh
Send Status Database Oracle With E-mail September 20, 2008
Posted by setijoagus in Linux, Oracle Tools, oracle.Tags: Crontab, Email, Instance, Linux, oracle, sendEmail
4 comments
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