Home / MAKALELER / Veri Tabanı / Datapump ile unix üzerinden yedekleme (crontab)

Datapump ile unix üzerinden yedekleme (crontab)

expdp ile günlük export almak …

Solaris üzerinde backup saklanacak /backup/export_test/ dizinini oluşturuyoruz.

Ardından dizinin sahibini oracle:dba yapıyoruz.
root@test #mkdir -p /backup/export_test/
root@test# chown -R oracle:dba /backup/export_test/
Oracle kullanıcısına geçiş yapıp, sqlplus’a bağlanıyoruz.
root@test # su – oracle
Sun Microsystems Inc. SunOS 5.10 Generic January 2005
-bash-3.00$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Sun Feb 19 22:54:44 2012
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 – 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
SQL>
Daha sonra ORACLE_BACKUP dizinini oluşturuyoruz..
SQL> CREATE OR REPLACE DIRECTORY
2 ORACLE_BACKUP AS
3 ‘/backup/export_test/’;
Directory created.
Test  kullanıcısına bu dizine okuma / yazma hakkı veriyoruz.
SQL> GRANT READ, WRITE ON DIRECTORY SYS.ORACLE_BACKUP TO TEST WITH GRANT OPTION;
Grant succeeded.
Aşağıdaki yazmış olduğumuz shell script ile datapump kullanarak backup almasını ve işlem sonunda bizi mail ile bilgilendirmesini sağlıyoruz.
root@TEST #cat /u01/oracle_backup/oracle_backup.sh
#!/bin/bash
vDateTime=`date ‘+%d_%m_%Y_%H%M’`
vSubDir=`date ‘+%m_%Y’`
vBackupDir=ORACLE_BACKUP
vDmpFile=pump_test_$vDateTime.dmp
vLogFile=pump_test_$vDateTime.log
vSourceDir=/backup/export_test/
vTargetDir=/backup/export_test/
ORACLE_SID=TEST
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
export ORACLE_HOME
export ORACLE_SID
# Oracle Yedekleme islemi yapiliyor…
# **************************************************************
echo “1 – Yedekleme islemi basliyor…”
$ORACLE_HOME/bin/expdp TEST/1qaz2wsx@TEST DIRECTORY=$vBackupDir DUMPFILE=$vDmpFile LOGFILE=$vLogFile SCHEMAS=TEST,TESTLOG,TEMP_USER EXCLUDE=TABLE:\”IN \(\TEST_LOG_ES\’\)\” EXCLUDE=STATISTICS
echo “Yedekleme islemi bitti…”
# **************************************************************
# Dosya tasinma islemi
# **************************************************************
echo “2 – Dosyalar yedek klasorune tasima islemi basliyor…”
if [ ! -d $vTargetDir$vSubDir ]; then  # yedekleme ait tarih klasoru varmi ? yoksa olustur…
mkdir $vTargetDir$vSubDir
fi
echo “Dosya zipleniyor…”
/usr/bin/gzip -1 $vSourceDir$vDmpFile
echo “Dosya zipleme islemi bitti…”
mv $vSourceDir$vDmpFile.gz $vTargetDir$vSubDir
mv $vSourceDir$vLogFile $vTargetDir$vSubDir
echo “Dosyalari yedek klasorune tasima islemi bitti…”
# **************************************************************
SUBJECT=” haftalik yedekleme islemleri”
EMAIL_ADDRESS=”yemre005@gmail.com”
mailx -r “test@test.com.” -s “$SUBJECT” “$EMAIL_ADDRESS” <<EOF
aylik yedek $vDmpFile dosyasi olarak alinmistir.
EOF
#***************************************************************
Scriptin sahibini   oracle:oinstall yapıyoruz.
Oracle kullanıcısına scripti execute etme hakkı veriyoruz.
root@TEST# chown oracle:oinstall oracle_backup.sh
root@TEST# chmod 755 oracle_backup.sh
Son olarak oracle kullanıcısının crontab’ına yazdığımız scriptin düzenli olarak çalışmasını istediğimiz  dk/saat/gün/hafta/ periyotları belirtiyoruz.

Aşağıdaki crontabta her haftanın ilk günü gece 02 de düzenli olarak backup scriptimiz çalışır./tmp/oraclebackup.log 2>&1  dosyasına script çalışması esnasında oluşan logları yazar.eğer herhangi bir hata almışsak script çalışmasında bu dosyaya inceleyip bir sonuca varabiliriz.
-bash-3.00$ crontab -e
GNU nano 2.0.9 File: /tmp/crontabpba4YP
#haftalik backup almak icin eklenmistir.
00 02 * * 1 /u01/oracle_backup/oracle_backup.sh > /tmp/oraclebackup.log 2>&1

About Yunus Emre Kilinc

Mersin Üniversitesi Bilgisayar Mühendisliği bölümünü bitirdikten sonra Ankara'da yaşamaya başladım. Şu anda Fatih Üniversitesinde İşletme yüksek Lisansı(MBA) na devam etmekteyim. 2010 yılında Oracle DBA eğitimi aldım. OCA 11gR2 sertifikasına sahibim. 2009 yılından beri Türk Telekom A.Ş de xDSL teknolojileri alanında çalışmaktayım. Oracle veritabanı yönetimi konularında kendimi geliştirmeye çalışmaktayım. İlgilendiğim ve kullandığım teknolojiler : Oracle SQL , PL/SQL Oracle 11g , Oracle 10g , UNIX (Sun Solaris), UNIX (HP-UX) ,OSI Model , IP ,DSL ,Unix Shell Scripting

İlginizi Çekebilir

SQL Server ile Veri Şifreleme

Bilgi teknolojilerinde verinin güvenliği çok kritik bir öneme sahiptir. Önemli verileri korumak için ekstra bir …

Bir Cevap Yazın