方法一:建三个job,job1仍然为每5分钟执行一次,job2在每周星期日1:00停止job1,job3在每周星期日7:00启动job1。
方法二:建俩个job,job1仍然为每5分钟执行一次,job2没分钟执行一次,并判断时间,星期日1:00则停止job1,星期日7:00则启动job1
不过不建议过多的使用job,会加重数据库负担。
oracle 如何查找和kill 对应的job进程
查找当前被锁住的进程:
SELECT object_name, ssid, sserial#, pspid
FROM v$locked_object l, dba_objects o, v$session s, v$process p
WHERE lobject_id = oobject_id
AND lsession_id = ssid
AND spaddr = paddr;
Kill 对应的Oracle Session
应为BROKEN后该JOB还在运行,如果要求该JOB立刻停止,就需要找到该job的对应SESSION(SID,SERIAL#),然后执行以下命令:
ALTER SYSTEM KILL SESSION 'sid,serial#';
将Job Queue Processes的数目修改为0
首先确认当前的Job Queue Processes的数目
SQL> select name,value from v$parameter where name ='job_queue_processes';
然后将Job Queue Processes的数目修改为0
ALTER SYSTEM SET job_queue_processes = 0;
保证所有的JOB都会停止。
恢复job_queue_processes的原始值
ALTER SYSTEM SET job_queue_processes = original_value;
远程连接oracle 会出现超时连接断开的问题,所以需要修改oracle配置。
修改超时时间10分钟
查询修改后的超时时间
其中IDLE_TIME的值就是设置的空闲超时时间。
写在存储过程里呗
if v_status = 1
then
else
job还正常调用
--补充--
先手动执行存储过程,并且是v_status<> 1的情况下,观察整个执行过程中间报什么异常,有问题的话再说
可以的话,存储过程重建,起个其他名字,重新定义job,看是否还这样
以上就是关于oracle job 定时全部的内容,包括:oracle job 定时、oracle 怎么查找和kill 对应的job进程、oracle设置游标超时时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)