1. 程式人生 > >自動備份Oracle 11g數據庫

自動備份Oracle 11g數據庫

str 數據庫 字段 1-1 xxx left 下午 bject log

采用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數據庫