Linux或UNIX系統下oracle資料庫expdp自動備份

許願流星1號發表於2014-11-20

使用EXPDP自動備份資料

1.建立ORACLE Directory物件,如:

 

scott目錄=/home/oracle/

 create directory scott as '/home/oracle/';

Grant read,write on directory scott to scott;

 

2.建立備份指令碼-

 

#cd /home/oracle/

 

#touch expdp.sh

 

#chmod 775 expdp.sh

 

#vi expdp.sh

 

3.編輯expdp.sh檔案內容如下:

 

[oracle@wg1 ~]$ vi expdp.sh

 

#/bin/sh

export ORACLE_SID=prod

export ORACLE_HOME=/home/u01/app/oracle/product/11.2.0/db_1

export NLS_LANG=american_america.zhs16gbk

 

now=`date +%Y%m%d`

 

dmpfile=db$now.dmp

 

echo start exp $dmpfile ...

 

/home/u01/app/oracle/product/11.2.0/db_1/bin/expdp scott/tiger@prod DUMPFILE=$dmpfile DIRECTORY=SCOTT

 

(expdp system/sys@dev DUMPFILE=$dmpfile DIRECTORY=full full=y)

 

mv  -f $dmpfile /home/zengxb/share

 

#刪除以前過期的備份

DUMP=/home/zengxb/share

#DUMP_HIS=/u01/oracle/backup_his

find $DUMP -name "*.dmp" -mtime +2 -exec rm {} \;  ------刪除超過兩天的dmp檔案

#find $DUMP_HIS -name "*.dmp" -mtime +10 -exec mv {} /oradata/bak/dmpbaks/ \;

 

 

 

4.編輯crontab檔案如下:

 

[root@wg1 oracle]# crontab -e -u oracle

 

51 16 * * *  /home/oracle/expdp.sh  >>/home/oracle/bak.log 2>&1

 

備份出來的是 scott20141027.dmp

 

5.重啟crond   不重啟也行的

 

#service crond restart

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29893219/viewspace-1340564/,如需轉載,請註明出處,否則將追究法律責任。

相關文章