Shell Script ile Oracle Schema Export Etmek

Shell Script ile Oracle Schema Export Etmek

Shell script ile kullanıcıya hangi şemayı export edeceğini sordurarak export işlemi yapacağız.
Disk üzerinde %70 den fazla boş yer varsa export işlemi başlayacak, aksi durumda hata
basarak işlemi kesecektir.Dmp dosyalarının ve log dosyalarının sonuna gün etiketini bastıracağız.
İşlem bitince de bitti diye bilgi maili attıracağız. Farklı ihtiyaçlar için farklı şekilde
uyarlanabilir.Genel bir taslak olması açısından paylaşıyorum.Script Oracle 11GR2 veritabanı
ve Solaris 10 işletim sisteminde denendi. Scripti kendinize göre uyarlayıp export.sh olarak kaydedip kullanabilirsiniz.

#!/bin/ksh
 
export ORACLE_HOME=/oracle/app/product/11.2.0.4/db
export ORACLE_SID=mxdev
export PATH=$PATH:$ORACLE_HOME/bin
export DT=`date '+%Y%m%d_%H%M'`
 
current_usage=$( df -h | grep '/orabackup' | awk {'print $5'} )
max_usage=70%
 
if [ ${current_usage%?} -ge ${max_usage%?} ]; then
error_text_="Orabackup diski dolu durumda.Disk kullanimi ${current_usage}."
echo ' #############################################################################'
echo ' #                                                                           #'
echo ' #                   '$error_text_'                                          #'
echo ' #                DB Admin ile iletisime Gecin Lutfen...                     #'
echo ' #                                                                           #'
echo ' #############################################################################'
 
elif [ ${current_usage%?} -lt ${max_usage%?} ]; then
echo "<<<<<<<< Yeterli disk var, Backup basliyor. Disk Kullanimi: ${current_usage} >>>>>>>>>>" > /dev/null
echo ''
echo '<< SCHEMA SEÇİNİZ >>'
echo ''
echo ' 1 - DEV1'
echo ' 2 - DEV2'
echo ' 3 - DEV3'
echo ''
/usr/ucb/echo -n "Lutfen Backup Alinacak Schema Numarasini Giriniz..: "
read n
echo ''
 
if test "$n" == "1"; then echo "<<<<<< $n DEV1 Backup Basliyor.. >>>>>>>"
expdp '" / as sysdba"' schemas=DEV1_SCHEMA directory=export_dir dumpfile=DEV1_SCHEMA_$DT.dmp logfile=log_DEV1_SCHEMA_$DT.log reuse_dumpfiles=y
 
elif test "$n" == "2"; then echo "<<<<<< $n DEV2 Backup Basliyor.. >>>>>>>"
expdp '" / as sysdba"' schemas=DEV2_SCHEMA directory=export_dir dumpfile=DEV2_SCHEMA_$DT.dmp logfile=log_DEV2_SCHEMA_$DT.log reuse_dumpfiles=y
 
elif test "$n" == "3"; then echo "<<<<<< $n DEV3 Backup Basliyor.. >>>>>>"
expdp '" / as sysdba"' schemas=DEV3_SCHEMA directory=export_dir dumpfile=DEV3_SCHEMA_$DT.dmp logfile=log_DEV3_SCHEMA_$DT.log reuse_dumpfiles=y
else echo "$n Yanlis Secim Yaptınız.."
fi
 
MAIL="dbadmin@deneme.com" export MAIL
CMAIL="dbadmin1@deneme.com" export CMAIL
ls -ltrh -t /orabackup/export/ | mailx -c $CMAIL -s 'DEV Export Backup Bitti' $MAIL
fi

Notlar:
1- Veritabanınızda export_dir adında bir directory olmalı ve export alan kullanıcının yazma yetkisi olmalıdır.
2- Scripti export.sh olarak kaydedip execute yetkisi vermelisiniz..( chmod +x /orabackup/export.sh )
3- Mail atabilmesi için solaris mailx ayarları yapılmalıdır.

Tagged: , , , , , , , ,

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir