ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 在AIX 上设定oracle自动执行任务的过程总结

在AIX 上设定oracle自动执行任务的过程总结

原创 Linux操作系统 作者:lucy_lxy 时间:2012-06-18 11:13:06 0 删除 编辑
环境:
本机为AIX6.1 64位操作系统,安装了oracle 11g,现在使用数据泵建立备份的批处理文件,然后想为oracle用户建立一个自动执行的任务,调用该批处理文件。
使用root用户 crontab –e oracle ,或者使用 Oracle  用户登录,crontab –e 即可进入任务编辑界面。
00 00 * * * “su – oracle –c “/app/oracle/product/11/db_1/bin/dbbackup”
设定每天凌晨00点开始执行该备份任务。如果指定了相应的文本编辑器,会自动调用,否则使用vi编辑器。注意Ins是开始输入文本,如果想删除,先按ESC,然后将光标移动到相应字符的位置,按DEL删除。ESC+wq 存盘,ESC+q!退出。
 注意不要手工自己去编辑,一个容易出错,另网上有帖子说还得杀掉所有的crontab进程,否则不会刷新你所做的变化。
 该操作将生成一个临时文件,每次编辑完某个用户的cron设置后,如果没有给定文件名,cron自动在/var/spool/cron/crontabscrontabspool 区域)下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中,这个文件是不可以直接编辑的,只可以用crontab -e 来编辑。cron启动后每过一份钟读一次这个文件,检查是否要执行里面的命令。因此此文件修改后不需要重新启动cron服务。 
 脚本建立之后必须赋予权限,才能在crontab调用shell时运行
 #chmod 775 oracle 此处oracle是我们设定的文件
具体执行的情况,可以看/var/adm/cron/log  相应的日志,或者看相应用户的邮件:
/var/spool/mail/ ,看是路径还是权限存在问题。

crontab –l是列出该用户的计划任务

crontab –r是删除该用户的计划任务

 
其中 dbbackup文件的内容如下,为保留5份备份文件:
cd /orabackup
export ORACLE_HOME=/app/oracle/product/11/db_1  #这句必须加,否则无法正确执行数据泵
rm /orabackup/d04.dp
mv d03.dp d04.dp
mv d02.dp d03.dp
mv d01.dp d02.dp
mv d00.dp d01.dp
 
mv exp_d03.log exp_d04.log
mv exp_d02.log exp_d03.log
mv exp_d01.log exp_d02.log
mv exp_d00.log exp_d01.log
 
expdp /  directory=dumpdir dumpfile=dqsh00.dp log=exp_dqsh00.log compression=all reuse_dumpfiles=true
 
需注意的事情
1、首先看下dbbackup命令是否能正常运行
2、后面的命令里面,好像必须使用绝对路径,相对路径不好用
3、为免除任务中间夭折,调用数据泵时去除job_name=exp_dqsh的参数,以免出了错无法重复执行
4、开始添加version=10.2.0,想转出得文件可以为10g所用,但是该参数和compression=all有冲突,在10g里面只能设定压缩值为MATADATA_ONLY,压缩的比率很低
5、正常的文件备份出来的有65g,使用compression=all之后的文件大小为9g,正常备份10分钟能做完,压缩后就得半个多小时了,如果异地EXP备份,要6 -7个小时才能完成,数据泵的确速度很快。
6、超过8g的文件,无法直接使用tar 命令进行压缩
7、没有时间测试设定FTP服务器,上载过去的过程
ftp 
upload
 
8、从11G开始新增了一个参数reuse_dumpfiles ,默认为N,可以覆盖现有的备份文件,否则会出错退出,日志文件不存在此问题。
 
9、使用PARALLEL这个参数,最好DUMPFILE那里指定相应多的文件,否则会出现ORA-39095的错误,而且使用了并行却指定一个文件,可能还会影响速度,而不是加快速度。
10、命令
Chkconfig –list|grep crond  看守护进程是否开机启动了
Ps –ef|grep crontab
11自动任务的格式:前一部分是对时间的设定,后面一部分是要执行的命令,如果要执行的命令太多,可以把这些命令写到一个脚本里面,然后在这里直接调用这个脚本就可以了,调用的时候记得写出命令的完整路径。时间的设定我们有一定的约定,前面五个*号代表五个数字,数字的取值范围和含义如下: 
 分钟 (0-59 
小時 (0-23
日期 (1-31
月份 (1-12
星期 (0-6//0代表星期天
注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都emailroot或者用户的信箱了。 
     12、当然并不是每个用户都可以使用计划任务功能。在AIX任务计划授权使用两个文件。
/var/adm/cron/cron.deny          定义不允许的用户
/var/adm/cron/cron.allow          定义允许的用户
如果cron.allow文件存在,只有把用户名写入到这个文件的用户才可以使用crontab命令。当然如果cron.allow存在,root肯定在其中。
如果两个文件都存在,还是只有在cron.allow文件中出现的用户才能执行crontab命令。相反,如果两个文件都不存在,就只有root能够执行crontab
如果只有cron.deny文件,则说明出现在这个文件的用户就不能执行执行,其他用户全部都可以执行crontab
13、小心一些陷阱
-* * 15 * * /myshell.sh
你看这个计划任务是什么,就是每月15日这一天不停的执行这个脚本。
14、也可以设定每隔几个小时执行一次任务,具体方法参见crontab的命令详解,at命令只执行一次。

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

请登录后发表评论 登录
全部评论

注册时间:2010-09-27

  • 博文量
    124
  • 访问量
    335984