oracle定时任务会漂移,定时任务与手动执行脚本时的一个重要注意事项
今天在linux環境下做了一個定時任務,用java程序到oracle中查詢數據,
手動執行腳本沒有問題,但是定時任務執行時卻一直報錯:
- java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1
ORA-12705: Cannot access NLS data files or invalid environment specified
真是百思不得其解啊!也懷疑是環境變量的問題,但是又覺得應該是一樣,
經過好長的努力,最后終于找到了解決辦法,
不要假定cron知道所需要的特殊環境,它其實并不知道。所以你要保證在shelll腳本中提供所有必要的路徑和環境變量,除了一些自動設置的全局變量
1)腳本中涉及文件路徑時寫全局路徑;
2)腳本執行要用到java或其他環境變量時,通過source命令引入環境變量,如:
cat start_cbp.sh
#!/bin/sh
source /etc/profile
export RUN_CONF=/home/d139/conf/platform/cbp/cbp_jboss.conf
/usr/local/jboss-4.0.5/bin/run.sh -c mev &
3)當手動執行腳本OK,但是crontab死活不執行時。這時必須大膽懷疑是環境變量惹的禍,并可以嘗試在crontab中直接引入環境變量解決問題。如:
0 * * * * . /etc/profile;/bin/sh /var/www/java/audit_no_count/bin/restart_audit.sh
閱讀(4893) | 評論(0) | 轉發(0) |
總結
以上是生活随笔為你收集整理的oracle定时任务会漂移,定时任务与手动执行脚本时的一个重要注意事项的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python调用sikuli的方法
- 下一篇: oracle11g的体系结构有几种,Or