1、環境
操作系統:CentOS 7
數據庫:11.2.0.1.0
2、登錄服務器
切換oracle用戶,備份需要在oracle用戶下進行
#su - oracle
在oracle家目錄下創建bin目錄(存放備份腳本)和backup目錄(存放備份文件)
#mkdir /home/oracle/bin
#mkdir /home/oracle/backup
創建backup.sh腳本
#vim /home/oracle/bin/backup.sh
腳本內容:
[
#!/bin/bash
#刷新環境變量,很重要!!!
source /etc/profile
source ~/.bash_profile
#備份文件存放目錄
dir=/home/oracle/backup/
cd $dir
#備份文件命名 YYYY-MM-DD_HH:mm
name=`date +%F_%T`
#備份語句,在服務器上備份用服務名,不能用實例名
exp 用戶名/密碼@服務名 file=$dir/${name}.dmp owner=用戶名
#刪除7天前的備份
find $dir -name "*.dmp" -mtime +7 | xargs rm -rf
]
存盤退出
添加腳本執行權限
#chmod +x backup.sh
3、添加計划任務
#crontab -e
添加內容:
[
30 23 * * * /home/oracle/bin/backup.sh > /dev/null 2>&1 #每天晚上11點半執行一次,所有輸出或錯誤定向至/dev/null,否則會發送郵件給oracle用戶
]
4、重啟crond服務
切換到root
#systemctl restart crond
測試效果(為檢驗效果計划任務設置了5分鍾執行一次【*/5 * * * * /home/oracle/bin/backup.sh > /dev/null 2>&1 】):