关于scheduler的2个小问题

最近处理了几个关于scheduler和autotask的小问题,这里总结一下。

  • 一、关于设置scheduler的window,有的时候会遇到设置了window,相关的job却没有跑。
  • 查dba_scheduler_window_log也没看到对应的job跑起来。这个时候,很有可能就是遇到scheduler的窗口冲突了。可以看看在dba_scheduler_window_log中在那个时刻是否有其他的window在跑。

    oracle建议合理的安排scheduler的窗口,在某个时间内,不应该有2个窗口重叠。

    不过,oracle还是允许重叠的窗口,但是重叠的(冲突的)窗口遵循以下原则:

    参考文档:Scheduled Job That Works Does Not Start In Window [ID 742683.1]




  • 二、怎么去找autotask对应的时间问题。
  • oracle在11g中预先定义了3个autotask,关于他们自动的执行的时间,我们可以这样去找(autotask用到了我们平时不常用的scheduler的window group,所以不太好找。)

    以automatic sql tunning advisor为例:

    找到sql tuning advisor对应的window group为ORA$AT_WGRP_SQ。

    找到对应window group的window name为上述几个window

    找到这几个window name对应repeat interval,就能看到他们是什么时候运行的了。

    此外,我们还能看看对应的log中执行的情况,查询dba_autotask_client_history:

    总结:

    DBA_AUTOTASK_CLIENT(window_group) --> DBA_SCHEDULER_WINGROUP_MEMBERS(window_name) --> DBA_SCHEDULER_WINDOWS(repeat_interval)

    相关文章

    发表评论

    电子邮件地址不会被公开。 必填项已用*标注

    此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据