ITPub博客

首页 > 数据库 > Oracle > crontab调用oracle的shell脚本注意事项

crontab调用oracle的shell脚本注意事项

原创 Oracle 作者:lusklusklusk 时间:2017-06-01 10:40:02 0 删除 编辑
直接在linux上运行shell脚本时,oracle用户是有这个环境变量的。但是crontab运行时,是没有用户的环境变量,所以需要在脚本中设置。

所以必须指定如下ORACLE_SID和ORACLE_HOME和PATH变量,否则会报错, 
而有没有#!/bin/sh倒是没什么关系
没有#!/bin/sh则按默认的默认shell中执行,查看默认的shell命令是 echo $SHELL

export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=TESTDB




缺少ORACLE_HOME,在crontab中去掉>>/dev/null 2>&1并让crontab运行,会发现在/var/spool/mail/oracle下会有如下报错
Message file RMAN<lang>.msb not found
Verify that ORACLE_HOME is set properly

而缺少ORACLE_SID则在crontab对应的脚本的写入日志中会有如下信息
RMAN-04005: error from target database:
ORA-12162: TNS:net service name is incorrectly specified





注:
并不是所有的oracle下的脚本都需要ORACLE_HOME和ORACLE_SID,只有涉及ORACLE数据库信息的才需要这两个变量如sqlplus和rman
lsnrctl命令不需要ORACLE_HOME和ORACLE_SID两个变量

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30126024/viewspace-2140157/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Welcome to Lukes DB HOME。 Oracle OCM、Mysql OCP, 10年DBA工作经验,博客仅记录自己的一个学习过程,不代表完全准确,如有需要,欢迎转载。

注册时间:2015-02-02

  • 博文量
    348
  • 访问量
    1174990