环境:sun 9+oracle rac 9i
sun主机已经运行600天没有重启过
据说oracle 9i有bug,主机超过500多天,job不能自动运行,那位朋友知道有什么办法不用重启主机解决的办法,
linuxdiyf.com/viewarticle.php?id=89730">http://www.linuxdiyf.com/viewarticle.php?id=89730
刚刚接手数据库的维护,最近发现oracle的job都不能自动运行了,手工执行仍然可以。上网查了下,发现原来是oracle的一个bug,计时器溢出了。
查看主机:
$ uptime
上午10点27分 运行 560 天 16:45, 1 user, 平均负载:0.52, 0.56, 0.60
已经远超过497天,必须要重新启动系统才行。由于不能轻易的重启系统,所以我就用crontab做了个定时运行的脚本来运行oracle的job。
1,首先查看oracle所要运行job的值:
SQL> select job from user_jobs where what like '%xxxxxxx%';
JOB
----------
422
SQL>
2,编写shell脚本auto_job.sh
$more auto_job.sh
#!/bin/bash
. /export/home/oracle/.profile
sqlplus -s user_name/passwd@sid
< exec dbms_job.run(422);
exit
!
3,用oracle用户创建crontab
$ crontab -e
00 03 * * * /export/home/oracle/auto_jobs.sh
测试没有问题,收工。