天天看點

linux伺服器oracle資料庫自動備份并且上傳至ftp伺服器

項目oracle資料庫部署在linux伺服器,需要每天定時備份并且上傳至ftp伺服器

操作步驟如下:

1. 編寫備份腳本并且壓縮備份上傳至ftp伺服器(autoExp_oracle.sh)

#!/bin/bash

#自動備份開始begin

#設定環境變量
export ORACLE_BASE=/u01/app/oracle
export ORACLE_DPDUMP=/u01/app/oracle/admin/orcl/dpdump
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
export ORACLE_SID=orcl
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export PATH=$PATH:/usr/sbin:/$ORACLE_HOME/bin
export DATE=`date +%Y%m%d`
export USERNAME=XXX
export PASSWD=XXX
export AUTOBACKUP=/u01/dataBack/data/autobackup
#進入對應目錄
cd ${AUTOBACKUP}/

#開始備份 ==============================
#先删除備份過程中生成的相關檔案             
rm -f ${ORACLE_DPDUMP}/db${DATE}.dmp             
rm -f ${ORACLE_DPDUMP}/db${DATE}.log

#自動備份osrm使用者資料庫             
expdp ${USERNAME}/${PASSWD} dumpfile=db${DATE}.dmp logfile=db${DATE}.log  schemas=${USERNAME} directory=DATA_PUMP_DIR            

#打包備份生成的dmp檔案及log檔案            
tar -cf db${DATE}.tar ${ORACLE_DPDUMP}/db${DATE}.dmp ${ORACLE_DPDUMP}/db${DATE}.log         
                
#壓縮                
gzip -f db${DATE}.tar              
                
#将備份檔案遠端傳輸到備份伺服器            
#scp db${DATE}.tar.gz backup_11xt/[email protected]:/home/ftp/xxx/oracle
ftp -i -n 192.168.2.15 <<EOF
user XXX XXX
mput db${DATE}.tar.gz
bye
EOF
#建議備份完成後,使用ftp方式上傳
                
#删除備份過程中生成的相關檔案             
rm -f ${ORACLE_DPDUMP}/db${DATE}.dmp             
rm -f ${ORACLE_DPDUMP}/db${DATE}.log                        
                
#自動備份結束end 
           

備注:導出資料庫采用expdp的方式,directory=DATA_PUMP_DIR中DATA_PUMP_DIR需要通過oracle執行sql查詢出來

select * from dba_directories
           
linux伺服器oracle資料庫自動備份并且上傳至ftp伺服器

2. 執行sh腳本測試驗證正确性

cd到腳本目錄執行

./autoExp_oracle.sh
           

3. 配置伺服器cron定時任務

crontab -e
           
linux伺服器oracle資料庫自動備份并且上傳至ftp伺服器

:wq! 儲存退出

crontab -l   檢視配置資訊

linux伺服器oracle資料庫自動備份并且上傳至ftp伺服器

service crond reload   重置配置資訊

4. 檢查定時任務執行結果

cd 到 /var/spool/mail/ 檢視root檔案内容

至此資料庫自動備份并且上傳至ftp伺服器配置完成

繼續閱讀