自動備份Oracle 11g數據庫
采用Linux提供的crontab定時任務觸發器。實施過程如下:
一、使用oracle帳號登錄
二、在/home/oracle目錄下添加XXXXX.sh腳本。
內容:export ORACLE_SID=XXXXX
export ORACLE_BASE=/u1/app/oracle
export ORACLE_HOME=/u1/app/oracle/product/11.2.0.3/db
export PATH=$ORACLE_HOME/bin:$PATH
filename=$(date +%y%m%d)
exp system/oracle@(SID) file=/var/dbbak/$filename.dmp owner=(SID User)
三、添加XXXXXX.sh文件執行權限
chmod u+x mesdbbackup1.sh
四、使用crontab -e命令添加linux排程
30 2 * * * /home/oracle/XXXXXX.sh(每天早上2:30進行備份)測試階段設定
Crontab 格式說明
我們可以用crontab -e 添加要執行的命令。 命令執行的結果,無論是標準輸出還是錯誤輸出,都將以郵件形式發給用戶。
添加的命令必須以如下格式: * * * * * /command path
前五個字段可以取整數值,指定何時開始工作,第六個域是字符串,即命令字段,其中包括了crontab調度執行的命令。 各個字段之間用spaces和tabs分割。
前5個字段分別表示: 分鐘:0-59 小時:1-23 日期:1-31 月份:1-12 星期:0-6(0表示周日)
還可以用一些特殊符號: *: 表示任何時刻 ,: 表示分割 -:表示一個段,如第二端裏: 1-5,就表示1到5點 /n : 表示每個n的單位執行一次,如第二段裏,*/1, 就表示每隔1個小時執行一次命令。也可以寫成1-23/1.
一些示例: 00 8,12,16 * * * /data/app/scripts/monitor/df.sh 30 2 * * * /data/app/scripts/hotbackup/hot_database_backup.sh 10 8,12,16 * * * /data/app/scripts/monitor/check_ind_unusable.sh 10 8,12,16 * * * /data/app/scripts/monitor/check_maxfilesize.sh 10 8,12,16 * * * /data/app/scripts/monitor/check_objectsize.sh
43 21 * * * 21:43 執行 15 05 * * * 05:15 執行 0 17 * * * 17:00 執行 0 17 * * 1 每周一的 17:00 執行 0,10 17 * * 0,2,3 每周日,周二,周三的 17:00和 17:10 執行 0-10 17 1 * * 毎月1日從 17:00到7:10 毎隔1分鐘 執行 0 0 1,15 * 1 毎月1日和 15日和 一日的 0:00 執行 42 4 1 * * 毎月1日的 4:42分 執行 0 21 * * 1-6 周一到周六 21:00 執行 0,10,20,30,40,50 * * * * 每隔10分 執行 */10 * * * * 每隔10分 執行 * 1 * * * 從1:0到1:59 每隔1分鐘 執行 0 1 * * * 1:00 執行 0 */1 * * * 毎時0分 每隔1小時 執行 0 * * * * 毎時0分 每隔1小時 執行 2 8-20/3 * * * 8:02,11:02,14:02,17:02,20:02 執行 30 5 1,15 * * 1日 和 15日的 5:30 執行 |
備份結果:
自動備份設定為每天早上2:30進行。從下圖可以看出在10-16下午實施後,系統已在17日早上自動進行備份。
自動備份Log日誌
自動備份Oracle 11g數據庫