Aix 5.3下自動備份Oracle多個實例

一、新建databack.sh文件,存放目錄/opt/databack/
#數據庫用戶資料
USERNAME=數據庫用戶名(信息隱藏)
PASSWORD=數據庫密碼(信息隱藏)
#FTP服務器信息
FTP_SERV=FTP服務器(信息隱藏)
FTP_USER=FTP用戶名(信息隱藏)
FTP_PASS=FTP密碼(信息隱藏)
FTP_DIR=FTP目錄(信息隱藏)
#備份目錄
BACKUP_DIR=/opt/databack
#格式化日期
DATE=`date +%Y%m%d`
#定義三個實例
EXP1=第一個ORACLE實例名稱(信息隱藏)
EXP2=第二個ORACLE實例名稱(信息隱藏)
EXP3=第三個ORACLE實例名稱(信息隱藏)
#開始備份第一個實例
export ORACLE_SID=${EXP1}
if [ -f ${BACKUP_DIR}/${EXP1}/${EXP1}_${DATE}.dmp ]; then
    echo exp ${EXP1} `date +%Y-%m-%d` backup file already exists.
else
    exp ${USERNAME}/${PASSWORD} file=${BACKUP_DIR}/${EXP1}/${EXP1}_${DATE}.dmp
fi
#註釋:如果備份目錄下存在當日的備份文件,則輸出“文件已存在”的提示信息,如果沒有,則備份文件。
#開始備份第二個實例
export ORACLE_SID=${EXP2}
if [ -f ${BACKUP_DIR}/${EXP2}/${EXP2}_${DATE}.dmp ]; then
    echo exp ${EXP2} `date +%Y-%m-%d` backup file already exists.
else
    exp ${USERNAME}/${PASSWORD} file=${BACKUP_DIR}/${EXP2}/${EXP2}_${DATE}.dmp
fi
#開始備份第三個實例
export ORACLE_SID=${EXP3}
if [ -f ${BACKUP_DIR}/${EXP3}/${EXP3}_${DATE}.dmp ]; then
    echo exp ${EXP3} `date +%Y-%m-%d` backup file already exists.
else
    exp ${USERNAME}/${PASSWORD} file=${BACKUP_DIR}/${EXP3}/${EXP3}_${DATE}.dmp
fi
#開始上傳備份文件
ftp -n $FTP_SERV <<AUTO_FTP
user $FTP_USER $FTP_PASS
passive
binary
cd $FTP_DIR
cd ${EXP1}
put ${BACKUP_DIR}/${EXP1}/${EXP1}_${DATE}.dmp ${EXP1}_${DATE}.dmp
cd ../${EXP2}
put ${BACKUP_DIR}/${EXP2}/${EXP2}_${DATE}.dmp ${EXP2}_${DATE}.dmp
cd ../${EXP3}
put ${BACKUP_DIR}/${EXP3}/${EXP3}_${DATE}.dmp ${EXP3}_${DATE}.dmp
AUTO_FTP
二、將databack.sh加入到計劃任務中
$crontab -e    [回車]
* 18 * * * /opt/databack/databack.sh
#註釋:每天晚18點運行此備份程序。
 
PS:此自動備份腳本在AIX 5.3和CentOS 5.3下實驗成功。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章