LoveUnix » ORACLE等数据库 » exp 备份脚本的问题(备份文件名更新)【已经解决,谢谢!】
让LU留住您的每

一天 让LU博客留住您的每一天
2006-4-26 11:35 Alilin
exp 备份脚本的问题(备份文件名更新)【已经解决,谢谢!】

用exp做oracle备份的脚本:
名为:ora_expbak.sh
路径:/oracle/app/oracle/product/8.1.7/bin/

用vi编写的时全部内容是否正确?
-------------------------------------------------------------------------------------------------------------------------------------------
/oracle/app/oracle/product/8.1.7/bin/ exp system/passwd full=y file=/orabak/exp_yyyymmdd.dmp log=/orabak/exp_yyyymmdd.log

-------------------------------------------------------------------------------------------------------------------------------------------

问题1:
我看到有些脚本的.dmp的全称可以是一个具体的名字而不是exp_yyyymmdd.log之类的东东。文件名称唯一的话,自动执行备份会不会覆盖?那种命名好?

问题2:在/oracle/app/oracle/product/8.1.7/bin/进行./ora_expbak.sh是报错.
KSH:/ora_expbak.sh:
0403-006 execute permission denied
这拒绝操作的原因是什么?脚本错了?如何解决?

问题3:如果用exp交互式来执行的话,要不要在/oracle/app/oracle/product/8.1.7/bin/下进行?
        如果用exp当 export file :expdata.dmp>备份文件名称
        回车后报错: exp-00028:failed to open 文件名称 forurite
        不管取名为.dmp还是一个我要备份的路径:/orabak/expbak.dmp都一样报错。
        
问题4:用exp交互式的话,备份的文件如果不能填写路径,那么它是存放在哪里?是/oracle/app/oracle/product/8.1.7/bin/之下吗????:L



:P谢谢大家了!!!

[[i] 本帖最后由 Alilin 于 2006-5-9 14:24 编辑 [/i]]

2006-4-26 12:42 SunnyXu
chmod +x ora_expbak.sh

2006-4-26 15:07 Alilin
chmod +x ora_expbak.sh   ?

是执行命令吗?

2006-4-26 15:38 charly
论坛中应该由自动备份脚本例子把?你找找看先。
教本内容:
-------------------------------------------------------------------------------------------------------------------------------------------
[color=Red]DATE=date[/color]
/oracle/app/oracle/product/8.1.7/bin/ exp system/passwd full=y file=/orabak/exp_[color=Red]$DATE[/color].dmp log=/orabak/exp_[color=Red]$DATE[/color].log

-------------------------------------------------------------------------------------------------------------------------------------------

问题1:
我看到有些脚本的.dmp的全称可以是一个具体的名字而不是exp_yyyymmdd.log之类的东东。文件名称唯一的话,自动执行备份会不会覆盖?那种命名好
[color=Red]当然覆盖,如果名称不同,那么需要定时清理备份文件,否则会撑死你的文件系统。
所以最好是名字自动、定期自动删除[/color]

问题2:在/oracle/app/oracle/product/8.1.7/bin/进行./ora_expbak.sh是报错.
KSH:/ora_expbak.sh:
0403-006 execute permission denied
这拒绝操作的原因是什么?脚本错了?如何解决?

[color=Red]这个问题SunnyXu已经回答了。[/color]

问题3:如果用exp交互式来执行的话,要不要在/oracle/app/oracle/product/8.1.7/bin/下进行?
        如果用exp当 export file :expdata.dmp>备份文件名称
        回车后报错: exp-00028:failed to open 文件名称 forurite
        不管取名为.dmp还是一个我要备份的路径:/orabak/expbak.dmp都一样报错。
[color=Red]你不好试试看的啊?
不一定要在bin目录下,这个只要你的路径里有/oracle/app/oracle/product/8.1.7/bin/就可以了,[/color]
        
问题4:用exp交互式的话,备份的文件如果不能填写路径,那么它是存放在哪里?是/oracle/app/oracle/product/8.1.7/bin/之下吗????
[color=Red]如果不填写路径,那么就是你执行命令的当前路径。[/color]

2006-4-26 16:02 Alilin
哦!chmod +x ora_expbak.sh 就是改为可以执行吧. 现在的属主是root,好像还要把它改为oracle组,是吗?

2006-4-26 16:03 Alilin
charly 的回帖超强!!!

太感谢了!!!
现在就去试试去。

谢谢!!!

2006-4-26 16:24 Alilin
charly (无学无为)
再请教你一下,我是要用编写crontab来实现自动备份的话,用不用调用DATA函数呢??
同时要把属主改为oracle?

P.S.
crontab中调用的ora_expbak.sh 的路径应该是/oracle/app/oracle/product/8.1.7/bin/ora_expbak.sh   吗?

[[i] 本帖最后由 Alilin 于 2006-4-26 17:20 编辑 [/i]]

2006-4-26 17:27 Alilin
我运行了一遍脚本
我原来的哪个生成的名字就是exp_yyyymmdd.dmp 和exp_yyyymmdd.log 了,估计不对。

charly (无学无为) 改写的脚本生成的是exp_date.dmp和exp_date.log。为什么不能按当前日期生成呢?


是不是要把上面先定义的DATE=date  改为:DATE=date'yyyy-mm-dd'   ?

2006-4-26 23:05 charly
DATE=`date '+%Y%m%d'`

很久不用,有点忘记。翻出来了。

顺便可以用这个把5天前的文件删除,注意“.”  那是当前目录。

这命令一定要小心,建议不要盲目使用,咱吃过一次苦头。
而且-timeza这个参数每个unix有点不太一样,自己看一下MAN find

find [color=Red]. [/color] -ctime +5 -exec rm {} \;;;

[[i] 本帖最后由 charly 于 2006-4-26 23:09 编辑 [/i]]

2006-4-26 23:11 闲云
今天用imp, 还很不熟练,明天看完相关文档,再来试验exp/imp

2006-5-9 14:23 Alilin
恩 脚本修改后可以完成备份(手工执行),
--------------------------------------------------------------------------------
DATE=`date +"%y%m%d"`
/oracle/app/oracle/product/8.1.7/bin/exp username/passwd  full=y  file=/orabak
/eipdb_$DATE.dmp log=/orabak/eipdb_$DATE.log
---------------------------------------------------------------------------------

页: [1]


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