1.備份腳本
#!/bin/bash
#:本腳本自動備份7天的數據庫,每次備份完成後,刪除7天之前的數據。
#加載oracle的相關參數
#如果oracle參數不明確,請使用命令查看
# su - oracle
# echo $ORACLE_HOME
# #如果是在windows中編輯命令上傳腳本之後需要執行下面的命令轉化爲unix格式
#sed -i 's/\r$//' back-up.sh
# 注意在編輯完腳本之後需要設置執行權限 chmod 755 back-up.sh
export ORACLE_HOME=/oracle/app/oracle/product/12.1.0/bzfg
export PATH=$ORACLE_HOME/bin:$PATH
#oracle字符集
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
#獲取當前時間,格式:20150210
DATE=$(date +%Y%m%d)
#獲取7天之前的時間,格式:20150203
DATE_RM=$(date -d "7 days ago" +%Y%m%d)
#設置備份目錄,
export DIR=/oracle/app/oracle/product/12.1.0/backup
echo $DIR
#創建日期目錄
mkdir $DIR/$DATE
#開始備份,此處採用exp方式導出,根據實際情況可選用expdb數據方式導出
echo 'Oracle backup...'
cd /oracle/app/oracle/product/12.1.0/bzfg/bin
./exp bzfg/bzfg1234@bzfg file=$DIR/$DATE'/bzfg_'$DATE'.dmp' owner=bzfg log=$DIR/$DATE'/bzfg_log_'$DATE'.log'
echo 'Oracle backup successfully.'
echo 'remove...' $DIR/$DATE_RM
rm -rf $DIR/$DATE_RM
echo 'remove successsfully.'
2.設置每晚定時執行
vi /etc/crontab 設置定時任務,插入如下(每天凌晨1點執行一次)
00 01 * * * root /oracle/app/oracle/product/12.1.0/backup/back-up.sh
用以下的方法啓動、關閉這個cron服務:
service crond start //啓動服務
service crond stop //關閉服務
service crond restart //重啓服務
service crond reload //重新載入配置