項目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
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHLwEkaNdXQE1UNNpXT6ZkMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLzgDN4UDNyYTM5ETNwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
2. 執行sh腳本測試驗證正确性
cd到腳本目錄執行
./autoExp_oracle.sh
3. 配置伺服器cron定時任務
crontab -e
:wq! 儲存退出
crontab -l 檢視配置資訊
service crond reload 重置配置資訊
4. 檢查定時任務執行結果
cd 到 /var/spool/mail/ 檢視root檔案内容
至此資料庫自動備份并且上傳至ftp伺服器配置完成