在測試環境中我們需要每天備份oracle中的數據,以便錯誤的操作、測試或者覆蓋其中有價值的數據,暫時不考慮生產環境的全量增量備份策略,本文只是簡單的oracle資料庫使用expdp命令設置定時任務備份數據。 ...
目錄
oracle使用expdp備份資料庫
備份shell腳本
#!/bin/sh
#獲取當前時間
BACKUPTIME=$(date +%Y%m%d)
#資料庫備份DATA_PUMP_DIR目錄的絕對路徑
DMPDIR=/u01/app/oracle/admin/orcl/dpdump
#備份的文件名
DMPNAME=bk-$BACKUPTIME.dmp
#導出日誌文件
LOGNAME=bk-$BACKUPTIME.log
#壓縮後的文件
ZIPNAME=bk-$BACKUPTIME.dmp.zip
expdp 用戶名/密碼@實例名 directory=DATA_PUMP_DIR schemas=用戶名 dumpfile=$DMPNAME logfile=$LOGNAME
cd $DMPDIR
zip -9 $ZIPNAME $DMPNAME
rm -rf $DMPDIR/$DMPNAME
#刪除30天以前的文件
find ./ -mtime +30 -name "bk-*" -exec rm -rf {} \;
創建定時任務
推薦linux中使用oracle用戶環境執行crontab任務。加入. ~/.bash_profile;是為了獲取用戶的環境變數,因為在測試中出現expdp命令不能使用的情況。
crontab -e
30 1 * * * . ~/.bash_profile; /bin/sh /home/oracle/autoBackupOracle.sh