您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > oracle-Job-管理
OracleJob管理1.实验环境Oracle9i2.实验资源创建表和存储过程SQLdroptabledate_log;SQLCREATETABLEDATE_LOG(create_dateDATECONSTRAINTcreate_date_pkPRIMARYKEY);SQLCREATEORREPLACEPROCEDUREcreate_date_log_rowISBEGININSERTINTOdate_log(create_date)VALUES(sysdate);END;/3.实验内容创建JOB,定期调用create_date_log_row存储过程,向create_date表中插入数据4.实验目的了解使用命令,来管理oracleJob.5.相关知识job相关的系统参数Job_queue_processes=2;这个是运行JOB时候所起用的进程数,当然系统里面JOB大于这个数值后,就会有排队等候的,最小值是0,表示不运行JOB,最大值是36Jpb_queue_interval=30;范围在1--3600之间,单位是秒。定期唤醒进程,判断有没有要执行的job.任务调度程序每30秒唤醒一次来确定是否要执行任务Altersystemsetjob_queue_processes=2;修改参数可以通过下面的方法重启进程一次指令(将job_queue_processes设置为0,在设置为原来的值)如下:altersystemsetjob_queue_processes=0--关闭job进程,等待5--10秒钟altersystemsetjob_quene_processes=5--恢复原来的值Job相关命令创建DBMS_JOB.SUBMIT(:jobno,//job号’your_procedure;’,//要执行的过程trunc(sysdate)+1/24,//下次执行时间’trunc(sysdate)+1/24+1’//每次间隔时间);删除job:dbms_job.remove(jobno);//job号修改job:dbms_job.what(jobno,what);//job号,修改下次执行时间:dbms_job.next_date(job,next_date);修改间隔时间:dbms_job.interval(job,interval);停止job:dbms_job.broken(job,true);启用job:dbms_job.broken(job,false,next_date);//next_date,下次执行时间如果不填next_date参数,则马上执行job启动job:dbms_job.run(jobno);注意执行命令后,要执行commit;命令相关的系统表和视图dba_jobs_runningdba_jobs(结果见附件)user_jobs(结果见附件)6.实验步骤第一步创建任务SQLVARjobnoNUMBER;--存储job号码SQLbegindbms_job.submit(:job,'MYPROC;',sysdate,'sysdate+1/1440');Commit;end;SQLPRINTjobno;---打印新建的job号JOBNO----------5第二步查看job执行情况SQLselect*fromdate_log;CREATE_DAT----------05-1月-10第三部查看job的参数值SQLselectlast_date,last_sec,next_date,next_sec,interval,brokenfromuser_jobswherejob=5;LAST_DATELAST_SECNEXT_DATENEXT_SECINTERVALBROKEN---------------------------------------------------------------------------------05-月-1010:48:2905-月-1010:49:29sysdate+1/(24*60)NLAST_DATE第一次执行日期LAST_SEC第一次执行时间NEXT_DATE下一次执行日期NEXT_SEC下一次执行时间INTERVAL执行频率BROKEN是否终端Y是N没有JobORACLE分配的作业IDUser_jobs表的其他字段请看附录第三步停止jobSQLexecdbms_job.broken(5,true);commit;//必须提交否则无效查看数据表中状态SQLselectbrokenfromuser_jobswherejob=5;broken------------Y第四步启动jobSQLexecdbms_job.broken(5,false);commit;//必须提交否则无效查看数据表中状态SQLselectbrokenfromuser_jobswherejob=5;broken------------N第五步修改job下次执行时间查询目前下次执行时间SQLselectnext_date,next_secfromuser_jobs;NEXT_DATENEXT_SEC--------------------------05-1月-1012:02:25修改下次执行之间SQLexecdbms_job.next_date(5,sysdate+2/(24*60));commit;查询目前下次执行时间SQLselectnext_date,next_secfromuser_jobs;NEXT_DATENEXT_SEC--------------------------05-1月-1012:05:58第五步修改job执行频率SQLexecdbms_job.interval(5,'sysdate+3/(24*60)');commit;查询执行频率SQLselectintervalfromuser_jobs;INTERVAL--------------------------------------sysdate+3/(24*60)第六步骤删除JOBSQLexecdbms_job.REMOVE(5);commit;7.附录:DBA_JOBS=======================================字段(列)类型描述JOBNUMBER任务的唯一标示号LOG_USERVARCHAR2(30)提交任务的用户PRIV_USERVARCHAR2(30)赋予任务权限的用户SCHEMA_USERVARCHAR2(30)对任务作语法分析的用户模式LAST_DATEDATE最后一次成功运行任务的时间LAST_SECVARCHAR2(8)如HH24:MM:SS格式的last_date日期的小时,分钟和秒THIS_DATEDATE正在运行任务的开始时间,如果没有运行任务则为nullTHIS_SECVARCHAR2(8)如HH24:MM:SS格式的this_date日期的小时,分钟和秒NEXT_DATEDATE下一次定时运行任务的时间NEXT_SECVARCHAR2(8)如HH24:MM:SS格式的next_date日期的小时,分钟和秒TOTAL_TIMENUMBER该任务运行所需要的总时间,单位为秒BROKENVARCHAR2(1)标志参数,Y标示任务中断,以后不会运行INTERVALVARCHAR2(200)用于计算下一运行时间的表达式FAILURESNUMBER任务运行连续没有成功的次数WHATVARCHAR2(2000)执行任务的PL/SQL块CURRENT_SESSION_LABELRAWMLSLABEL该任务的信任Oracle会话符CLEARANCE_HIRAWMLSLABEL该任务可信任的Oracle最大间隙CLEARANCE_LORAWMLSLABEL该任务可信任的Oracle最小间隙NLS_ENVVARCHAR2(2000)任务运行的NLS会话设置MISC_ENVRAW(32)任务运行的其他一些会话参数描述INTERVAL参数值每天午夜12点'TRUNC(SYSDATE+1)'每天早上8点30分'TRUNC(SYSDATE+1)+(8*60+30)/(24*60)'每星期二中午12点'NEXT_DAY(TRUNC(SYSDATE),''TUESDAY'')+12/24'每个月第一天的午夜12点'TRUNC(LAST_DAY(SYSDATE)+1)'每个季度最后一天的晚上11点'TRUNC(ADD_MONTHS(SYSDATE+2/24,3),'Q')-1/24'每星期六和日早上6点10分'TRUNC(LEAST(NEXT_DAY(SYSDATE,''SATURDAY),NEXT_DAY(SYSDATE,SUNDAY)))+(6×60+10)/(24×60)'####################################################################
本文标题:oracle-Job-管理
链接地址:https://www.777doc.com/doc-6755219 .html