设为首页 收藏本站
查看: 684|回复: 0

[经验分享] Oracle job 管理

[复制链接]

尚未签到

发表于 2018-9-12 07:19:25 | 显示全部楼层 |阅读模式
  查看数据库job
  select * from dba_jobs;
  初始化相关的参数:job_queue_process
  altersystemset job_queue_process=1000scope=spfile;
  建议最大job进程数不要超过1000,oracle11g默认job队列进程数为1000.
  dba_jobs:描述数据库所有的job信息.
  JOB NUMBER任务的唯一标示号
  LOG_USER VARCHAR2(30) 提交任务的用户
  PRIV_USER VARCHAR2(30) 赋予任务权限的用户
  SCHEMA_USER VARCHAR2(30) 对任务作语法分析的用户模式
  LAST_DATE DATE最后一次成功运行任务的时间
  LAST_SEC VARCHAR2(8) 如HH24:MM:SS格式的last_date日期的小时,分钟和秒
  THIS_DATE DATE正在运行任务的开始时间,如果没有运行任务则为null
  THIS_SEC VARCHAR2(8) 如HH24:MM:SS格式的this_date日期的小时,分钟和秒
  NEXT_DATE DATE下一次定时运行任务的时间
  NEXT_SEC VARCHAR2(8) 如HH24:MM:SS格式的next_date日期的小时,分钟和秒
  TOTAL_TIME NUMBER该任务运行所需要的总时间,单位为秒
  BROKEN VARCHAR2(1) 标志参数,Y标示任务中断,以后不会运行
  INTERVALVARCHAR2(200) 用于计算下一运行时间的表达式
  FAILURES NUMBER任务运行连续没有成功的次数
  WHAT VARCHAR2(2000) 执行任务的PL/SQL块
  CURRENT_SESSION_LABEL RAWMLSLABEL该任务的信任Oracle会话符
  CLEARANCE_HI RAWMLSLABEL该任务可信任的Oracle最大间隙
  CLEARANCE_LO RAWMLSLABEL该任务可信任的Oracle最小间隙
  NLS_ENV VARCHAR2(2000) 任务运行的NLS会话设置
  MISC_ENV RAW(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)'
  user_jobs:描述当前用户所有的job信息.
  dba_jobs_running:查看正在运行的job.
  根据后台trace文件和alertlog查看job的情况
  show parameterbackground_dump_dest;
  停止一个Job操作
  exec dbms_job.broken(1,true);
  commit;
  启动一个job操作
  exec dbms_job.broken(1,false);
  commit;
  查看job的具体作用:
  selectjob,what,to_char(last_date,'yyyy-mm-dd HH24:mi:ss'),
  to_char(next_date,'yyyy-mm-dd HH24:mi:ss'),interval
  from dba_jobs ;
  创建一个定时任务
  创建之后非立刻启动:
  1.创建一个测试表
  createtable test ( a date);
  2.创建job调用的存储过程
  createorreplaceprocedure myproc
  as
  begin
  insertinto test values(sysdate);
  end;
  /
  3.创建一个Job
  variable job number;
  begin
  dbms_job.submit(:job,'MYPROC;',sysdate,'sysdate+1/1440');
  end;
  /
  4.启动定时任务
  begin
  dbms_job.run(:job);
  end;
  /
  5.测试job是否插入数据
  select * from test;
  删除JOb
  begin
  dbms_job.remove(:job);
  end;
  /
  利用dbms_job.run()立即执行该job
  begin
  dbms_job.run(:jobNo);
  end ;
  /
  利用dbms_job.broken()重新将broken标记为false
  begin
  dbms_job.broken(:jobNo,false,next_date);
  end;
  /
  实例2,创建之后非立刻启动:
  1.创建一个测试表
  createtable a ( a date);
  2.创建job调用的存储过程
  createorreplaceprocedure myproc
  as
  begin
  insertinto a values(sysdate);
  end;
  /
  3.创建一个Job
  variable job number;
  begin
  dbms_job.submit(:job,'TEST;',sysdate,'sysdate+1/1440');
  end;
  /
  commit;
  4.查看job编号
  select job,what from user_jobs;
  5.运行job
  begin
  dbms_job.run(70);
  end;
  /
  commit;
  5.检查数据
  select * from a;


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-573061-1-1.html 上篇帖子: ORACLE 字符串操作 下篇帖子: Oracle job 时间间隔
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表