LoveUnix » ORACLE等数据库 » 求助,关于cron自动备份oracle的问题
让LU留住您的每

一天 让LU博客留住您的每一天
2005-12-29 11:36 giftxiao
求助,关于cron自动备份oracle的问题

这几天在测试用cron自动备份oracle,总是有问题,高手帮忙看看~,谢谢:
用oracle用户登陆用crontab -e编辑,写自动备份的脚本如下,也就是执行一个自己的shell

shell脚本如下:
#!/usr/bin/ksh
. /home/oracle/ora_env
exp system/oracle@ora9 owner=test file=/orabak/1229bak.dmp log=/orabak/exp.log

其中ora_env文件存的是oracle的环境一类的东东,如下:
ORACLE_SID=ora9;export ORACLE_SID
ORACLE_TERM=dtterm;export ORACLE_TERM
LD_LIBRARY_PATH=$ORACLE_HOME/lib;export LD_LIBRARY_PATH
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data;export ORA_NLS
PATH=.:/usr/ccs/bin:/usr/ucb:$ORACLE_HOME/bin:$PATH;export PATH
DISPLAY=172.16.87.133:0.0;export DISPLAY
NLS_LANG=american_america.zhs16cgb231280;export NLS_LANG

单独执行这个shell脚本,可以执行成功导出,但是用cron自动执行就报错:
/orabak/test.sh[4]: exp:  not found.
报了这个找不到exp的错,我就修改了shell脚本,把exp的全路径加上,/oracle/product/9.2.0/bin/exp
单独执行这个脚本也成功,不过用cron还是报错:
Message 206 not found; No message file for product=RDBMS, facility=EXP: Release
9.2.0.1.0 - Production on Tue Dec 27 14:44:00 2005
Copyright (c) 1982, 2002, Oracl
Invalid format of Export utility name
Verify that ORACLE_HOME is properly set
Export terminated unsuccessfully
不知道如何解决?

2005-12-29 11:38 charly
直接把ENV的东西加到执行脚本里边,减少出错的机会。

#!/usr/bin/ksh

[color=Red]ORACLE_SID=ora9;export ORACLE_SID
ORACLE_TERM=dtterm;export ORACLE_TERM
LD_LIBRARY_PATH=$ORACLE_HOME/lib;export LD_LIBRARY_PATH
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data;export ORA_NLS
PATH=.:/usr/ccs/bin:/usr/ucbORACLE_HOME/binPATH;export PATH
DISPLAY=172.16.87.133:0.0;export DISPLAY
NLS_LANG=american_america.zhs16cgb231280;export NLS_LANG[/color]

exp system/oracle@ora9 owner=test file=/orabak/1229bak.dmp log=/orabak/exp.log

[[i] 本帖最后由 charly 于 2005-12-29 11:39 编辑 [/i]]

2005-12-29 11:40 charly
还有你的路径也不对把:
PATH=.:/usr/ccs/bin:/usr/ucbORACLE_HOME/binPATH;export PATH

建议把oracle用户下的.profile文件前部分的内容Copy过来就好了

2005-12-29 11:45 giftxiao
我一开始是用的.profile里的,不过还是报错,后来才用网上找的资料里写的.我下午试试直接写在shell里.谢谢

2005-12-29 11:47 charly
仔细检查每一行,网上的和你自己的肯定有很多不同的,其实大部分都是细节问题。

2005-12-29 11:52 giftxiao
有一点想不通的,就是直接执行shell是成功的,用cron就不成功了~

2005-12-29 12:05 yttao
[quote]原帖由 [i]giftxiao[/i] 于 2005-12-29 11:52 发表
有一点想不通的,就是直接执行shell是成功的,用cron就不成功了~ [/quote]
我在进行编写其它CRON的时候也发现这个问题,目前还不好判断,个人认为就是CRON的时候环境变量没有生效,把环境变量直接写到脚本里面应该是可以成功的,我是新手,脚本不是很熟练。
并且我发现你的环境变量文件里面调用了ORACLE_HOME,但是没见到他的路径呀

[[i] 本帖最后由 yttao 于 2005-12-29 12:07 编辑 [/i]]

2005-12-29 21:17 giftxiao
谢谢各位帮助,问题解决了,还是用的.profile里的内容,把.profile里的内容直接写在了shell里,就好了,不过估计另写一个环境变量的文件,用shell调也可以,没有试了

2005-12-29 21:22 charly
[quote]原帖由 [i]giftxiao[/i] 于 2005-12-29 11:52 发表
有一点想不通的,就是直接执行shell是成功的,用cron就不成功了~ [/quote]


这个不是很好理解:你直接执行的时候已经登陆,环境变量都存在了。
cron的时候就没有。

页: [1]


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.