Linux的crontab問題

mengzhaoliang發表於2010-12-28

Oracle資料庫中,有時會發現備份指令碼可以在命令列可以執行,但在crontab不能執行。

1、  確定在Linuxoracle使用者下crontab是否有效。

可以寫一個最簡單的指令碼,指令碼中只有date 命令,把指令碼輸入到一個日誌檔案中。如:

30 23 * * 0-6 /u01/app/rmanBackup/date.sql >>/u01/app/rmanBackup/date.log

 

Date.sql需要有足夠的執行許可權。

如果可以定時執行date命令,表示在oracle下可以使用crontab命令

 

Oracle的指令碼不能執行,是因為在crontab中找不到oracle下的相關命令,所以需要加上export設定環境變數。沒有設定export不能執行。

 

如:全備:

[oraoms@HYXXDBS01 rmanBackup]$ vi backupFull.sql

內容:

#   script.:bakupFull.sql

#   creater:mengzhaoliang

#   date:2010/12/28

#   desc:backup full database datafile in archive with rman

 

# connect database

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1

export ORACLE_SID=hyoms

export PATH=$ORACLE_HOME/bin:$PATH

rman target/ << EOF_RMAN

run{

allocate channel c1 type disk;

backup tag 'full' format '/u01/app/rmanBackup/db0_%d_%T_%s' database include current controlfile;

delete noprompt  obsolete;

release channel c1;

}

# end

 

crontab

[oracle@mzl ~]$ crontab -e

30 23 * * 0-6 /u01/app/rmanBackup/backupFull.sql >>/u01/app/rmanBackup/backupFull.log

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12778571/viewspace-682731/,如需轉載,請註明出處,否則將追究法律責任。

相關文章