Oracle10g调度例行任务解放DBA时间
2007-05-11 12:21:19 来源:WEB开发网例行任务是单调和令人厌烦的。如果你以手动方式执行这些例行任务,则你不得不紧张地一次又一次地重复执行相同的任务,Oracle数据库10g新的内置任务调度程序为你提供了调度例行任务的强大功能。利用这一调度程序,你可以规定要完成的工作、指定什么时候完成该工作,并监测该工作的完成情况,以便能纠正任何问题。你甚至可以控制分配给您所调度的任务的数据库资源和优先级,以确保首先完成最重要的工作,而不会对其它系统的活动产生不可抵抗的影响。
体系结构
你可以通过 DBMS_SCHEDULER 包或者通过Oracle企业管理器10g的数据库控制功能来访问这一新的调度程序。图1给出了与任务的创建和执行具有最直接关系的调度程序组件。一项任务将一个程序和一个调度表结合在一起。该程序定义将要运行的内容。例如,一个程序可以是一个 PL/SQL 块、一个存储过程,或者一个操作系统脚本。而调度表则定义什么时候运行该程序。对于一个一次性任务,调度表中仅包含一个起始时间。对于一个重复性任务,你可以指定一个起始时间,一个重复运行调度表,还可以根据需要指定结束时间。每次运行一项任务都被看作是一个任务实例。在开始使用该程序调度程序时必须掌握的三个核心组件就是任务、调度表和程序。
如图1所示,任务类将调度系统与资源管理系统连接起来,使你可以控制如何将数据库资源分配给正在运行的任务。利用任务类将一个任务下达到资源使用者组,该组是一个共享 CPU 时间、并行操作和其它资源分配的会话期组。然后,你可以利用资源计划来控制将这些资源分配给这个使用者组或其它使用者组。图2 显示出调度程序窗口如何控制不同资源计划在何时被激活。图2 还显示一个窗口组,它将类似的窗口组合成一个单一的实体。窗口和窗口组使你可以在很好地控制如何将数据库资源分配给不同的任务类。
更多精彩
赞助商链接