免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2159 | 回复: 9
打印 上一主题 下一主题

为什么定时备份Oracle的脚本执行后没有输出dmp文件? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-12-10 23:28 |只看该作者 |倒序浏览
我写了一个shell,用来导出Oracle数据库数据,如下:
back.sh (权限允许所有用户执行)
# /bin/sh
year=`date +%Y`
month=`date +%m`
day=`date +%d`
now=$year-$month-$day

exp user/passwd@mydb file=/export/home/my/my_$now.dmp

我用crontab -e在oracle建立了定时队列如下:
30 * * * * /export/home/public/back.sh
但是back.sh执行后并/export/home/my/下没有dmp文件

我用一个测试shell,如下:
test.sh
cp /export/home/public/afile /export/home/my/afile

用crontab -e在oracle建立了定时队列如下:
45 * * * * /export/home/public/test.sh
该定时程序执行后,文件被copy到了/export/home/my/下

我观察了cron的日志/var/cron/log,如下:
>;  CMD: /export/home/public/back.sh
>;  oracle 10443 c 三 12月 10 15:30:00 2003
<  oracle 10443 c 三 12月 10 15:30:00 2003 rc=1
/etc/mail/sendmail.cf: line 77: fileclass: cannot open /etc/mail/local-host-names: World writable directory
/etc/mail/sendmail.cf: line 472: fileclass: cannot open /etc/mail/trusted-users: World writable directory
>;  CMD: /export/home/public/test.sh
>;  oracle 10393 c 三 12月 10 15:45:00 2003
<  oracle 10393 c 三 12月 10 15:45:00 2003

我感觉back.sh也执行了,什么没有输出。
我如果直接执行back.sh, 可以输出dmp文件。
我很奇怪为什么放在crontab中exp就不行了,而随便用cp等命令测试就可以,是不是我有哪些配置有问题?
哪位高手给指点一下?

运行环境SUN ULTRA 60 Solaris 8 + oracle 9i release1 标准版

论坛徽章:
0
2 [报告]
发表于 2003-12-11 20:57 |只看该作者

为什么定时备份Oracle的脚本执行后没有输出dmp文件?

哪位大虾帮忙分析一下可能是什么原因,小弟试了多次还是这样

论坛徽章:
1
2016科比退役纪念章
日期:2016-05-26 15:48:47
3 [报告]
发表于 2003-12-11 21:30 |只看该作者

为什么定时备份Oracle的脚本执行后没有输出dmp文件?

不太懂oracle,只是想提示一下,会不会是"exp user/passwd@mydb file=/export/home/my/my_$now.dmp "
中exp命令没有指明全路径?
我猜的,错了莫怪。

论坛徽章:
0
4 [报告]
发表于 2003-12-12 14:22 |只看该作者

为什么定时备份Oracle的脚本执行后没有输出dmp文件?

把环镜变量加到脚本中去就OK了!!!

论坛徽章:
0
5 [报告]
发表于 2003-12-12 14:45 |只看该作者

为什么定时备份Oracle的脚本执行后没有输出dmp文件?

用crontab执行不会带.profile里面的环境变量的,所以要把oracle需要的环境变量一起写到back.sh里面去。保证成功。

论坛徽章:
0
6 [报告]
发表于 2003-12-12 16:53 |只看该作者

为什么定时备份Oracle的脚本执行后没有输出dmp文件?

加上ORACLE_SID

论坛徽章:
0
7 [报告]
发表于 2003-12-13 11:59 |只看该作者

为什么定时备份Oracle的脚本执行后没有输出dmp文件?

多谢各位,我试一下。
我还有个疑问,我怎样把oracle需要的环境变量(或者ORACLE_SID)
加到shell中呢?我是个新手,还望继续指点一下

to:nanaskylead
我把exp命令全路径加了也不行

论坛徽章:
0
8 [报告]
发表于 2003-12-13 12:14 |只看该作者

为什么定时备份Oracle的脚本执行后没有输出dmp文件?

比如你的CSH
vi .cshrc
  1. setenv PATH /export/home/oracle/bin:/usr/bin:/usr/sbin:/etc:/usr
  2. setenv DISPLAY 192.168.0.131:1.0
  3. setenv ORACLE_BASE /export/home/oracle
  4. setenv ORACLE_HOME /export/home/oracle
  5. setenv ORACLE_SID ora8i
  6. setenv LD_LIBRARY_PATH $ORACLE_HOME/lib
  7. setenv ORACLE_OWNER oracle
  8. setenv ORACLE_TERM  sun
  9. setenv NLS_LANG "AMERICAN" _AMERICA.We81S08859P1
复制代码

论坛徽章:
0
9 [报告]
发表于 2003-12-13 16:18 |只看该作者

为什么定时备份Oracle的脚本执行后没有输出dmp文件?

谢谢。我感觉是把Oracle Profile的设置在我的备份shell中再写一下,我的理解对吗

论坛徽章:
0
10 [报告]
发表于 2003-12-15 20:23 |只看该作者

为什么定时备份Oracle的脚本执行后没有输出dmp文件?

多谢各位,问题解决。
把Oracle Profile的设置在备份shell中再写一下就可以了
比如:
back.sh

Oracle_HOME=/export/home/oracle/OraHome1
export Oracle_HOME

PATH=$PATH:/usr/local/bin:/usr/bin:/:/etc/binOracle_HOME/bin
export PATH

Oracle_SID=Oracle
export Oracle_SID

NLS_LANG="SIMPLIFIED CHINESE ZHS16GBK"
export NLS_LANG


year=`date +%Y`
month=`date +%m`
day=`date +%d`
now=$year-$month-$day

exp user/passwd@mydb file=/export/home/my/my_$now.dmp
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP