安排作业

本教程介绍了如何使用数据库 Scheduler 自动执行作业。

大约 30 分钟

本教程包括下列主题:

将光标置于此图标上可以加载和查看本教程的所有屏幕截图。(警告:因为此操作会同时加载所有屏幕截图,所以网速较慢时,响应时间可能会比较长。)

注意:此外,还可以在下面的步骤中将光标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。

何为数据库 Scheduler?

Scheduler 使数据库管理员和应用程序开发员可以控制各种任务发生的时间和位置。这些任务可能比较复杂并需要大量时间,因此使用 Scheduler 可以帮助您提高这些任务的管理和规划。此外,通过确保许多日常数据库任务在没有手动干预的情况下发生,您可以降低操作成本、实现更可靠的例程以及最大限度地减少人工错误。

Scheduler 使用三个主要组件:

规划指定作业执行的时间和次数。与程序相似,规划是数据库项并可以保存在数据库中。同一规划计划可以由多个作业使用。
程序是一个有关 Scheduler 将运行的任务的元数据集合。它包括程序名、程序类型等信息,以及有关传递给程序的参数的信息。
作业指定需要执行的任务以及执行时间。例如,“任务”可以是 PL/SQL 过程、可执行的 C 程序、java 应用程序、shell 脚本或客户端 PL/SQL。可以将程序(任务)和计划(时间)指定为作业定义的一部分,也可以使用现有程序或计划。

返回主题列表

开始学习本教程之前,您应已经:

1.

完成了教程:使用真正应用集群 (RAC) 和自动存储管理 (ASM) 在 Windows 上安装 Oracle 数据库 10g

或者

完成了教程:在 Linux 上安装 Oracle 数据库 10g

此任务由管理员执行。 要使 HR 用户可以创建作业,必须为 HR 分配一些权限。执行以下步骤:

1.

打开一个浏览器,并输入以下 URL:

http://:5500/em

输入 sys 作为用户名,指定口令,以 SYSDBA 身份连接,然后单击 Login

将鼠标移到该图标上可以查看该图像

2.

单击 Administration 选项卡。

将鼠标移到该图标上可以查看该图像

3.

选择 Users

将鼠标移到该图标上可以查看该图像

4.

在 Name 域中输入 HR,然后单击 Go。 然后,选择 HR 用户。

将鼠标移到该图标上可以查看该图像

5.

单击 System Privileges 选项卡。

将鼠标移到该图标上可以查看该图像

6.

单击 Modify

将鼠标移到该图标上可以查看该图像

7.

选择权限 CREATE ANY JOBSELECT ANY DICTIONARY 并单击 Move。然后,单击 OK

将鼠标移到该图标上可以查看该图像

8.

单击 Apply

将鼠标移到该图标上可以查看该图像

9.

您现在可以 SYSTEM 的身份注销并以 HR 用户的身份登录。单击 Logout

将鼠标移到该图标上可以查看该图像

10.

单击 Login

将鼠标移到该图标上可以查看该图像

11.

输入 hr 作为用户名,输入 hr 作为口令,然后单击 Login。可能看到一个 Licensing 窗口。如果看到,则向下滚动并单击 I Agree

将鼠标移到该图标上可以查看该图像

12.

单击 Administration 选项卡。

将鼠标移到该图标上可以查看该图像

您现在可以创建一些作业。

返回主题列表

创建一个简单的自包含的作业。这意味着将在作业本身中指定所有作业属性。执行以下步骤:

1.

向下滚动。 在 Scheduler 下,选择 Jobs 链接。

将鼠标移到该图标上可以查看该图像

2.

单击 Create 创建一个新作业。

将鼠标移到该图标上可以查看该图像

3.

输入以下信息,然后单击 OK

Name:ALTER_INDX001
Owner:HR
Enabled:Yes
Description: This job will coalesce index HR.EMP_NAME_IX on the EMPLOYEES table
Logging Level: log job runs only (RUNS)
Job Class: DEFAULT_JOB_CLASS
Auto Drop: FALSE
Restartable: TRUE
Command:EXECUTE IMMEDIATE 'alter index HR.EMP_NAME_IX coalesce';

将鼠标移到该图标上可以查看该图像

4.

已经执行您的作业。单击 Run History 选项卡。

将鼠标移到该图标上可以查看该图像

5.

如果未看到您的作业,则单击 Refresh。 您看到 ALTER_INDX001 作业已经成功完成。单击该作业以查看作业执行详细信息。

将鼠标移到该图标上可以查看该图像

6.

现在,您准备创建一个执行 PL/SQL 过程的作业。单击窗口顶部的 Cluster Database: O10G 定位器链接。

将鼠标移到该图标上可以查看该图像

将鼠标移到该图标上可以查看该图像

返回主题列表

在本示例中,您将创建一个 PL/SQL 过程,然后创建一个作业,该作业指向将在作业执行时执行的过程。执行以下步骤:

创建一个过程
创建一个使用 PL/SQL 过程的作业

创建一个过程

执行以下步骤:

1.

在 Schema 下,选择 Procedures 链接。

将鼠标移到该图标上可以查看该图像

2.

单击 Create

将鼠标移到该图标上可以查看该图像

3.

输入以下信息,然后单击 OK

Name:COALESCE_INDX001
Schema:HR
Source:
as
begin
EXECUTE IMMEDIATE 'alter index HR.EMP_NAME_IX coalesce';
end;

将鼠标移到该图标上可以查看该图像

4.

已经创建了过程。 单击 Cluster Database:O10G 定位器链接。

将鼠标移到该图标上可以查看该图像

返回列表

创建一个使用 PL/SQL 过程的作业

现在可以创建作业。执行以下步骤:

1.

向下滚动并在 Scheduler 下选择 Jobs 链接。

将鼠标移到该图标上可以查看该图像

2.

单击 Create

将鼠标移到该图标上可以查看该图像

3.

输入以下信息,然后单击 Change Command Type

Name:ALTER_INDX_PROC001
Owner:HR
Enabled:No
Description: This job will coalesce index HR.EMP_NAME_IX on the EMPLOYEES table
Logging Level:Log job runs only (RUNS)
Job Class:DEFAULT_JOB_CLASS
Auto Drop:FALSE
Restartable:TRUE

将鼠标移到该图标上可以查看该图像

4.

选择 In-line Program: Stored Procedure 并单击搜索指示灯图标。

将鼠标移到该图标上可以查看该图像

5.

在 Schema 域中输入 hr,然后单击 Go。 然后,从该列表中选择 COALESCE_INDX001 并单击 Select

将鼠标移到该图标上可以查看该图像

6.

单击 OK

将鼠标移到该图标上可以查看该图像

7.

选择 Schedule 选项卡。

将鼠标移到该图标上可以查看该图像

8.

确保将 Start 设置为 Immediately,然后单击 OK

将鼠标移到该图标上可以查看该图像

9.

单击 Disabled 选项卡。

将鼠标移到该图标上可以查看该图像

10.

选择 ALTER_INDX_PROC001

将鼠标移到该图标上可以查看该图像

11.

对于 Enabled 单击 Yes,然后单击 Apply

将鼠标移到该图标上可以查看该图像

12.

选择 Scheduler Jobs 定位器链接。

将鼠标移到该图标上可以查看该图像

13.

单击 Run History 选项卡。

将鼠标移到该图标上可以查看该图像

14.

注意,您的作业已经成功运行。选择 ALTER_INDX_PROC001

将鼠标移到该图标上可以查看该图像

15.

您可以查看记录的作业历史记录。 然后,单击 Cluster Database:O10G 定位器链接。

将鼠标移到该图标上可以查看该图像

返回列表

此时,您需要创建一个将在明年的每晚 11:00 运行的计划。执行以下步骤:

1.

向下滚动。 在 Scheduler 下,选择 Schedules 链接。

将鼠标移到该图标上可以查看该图像

2.

单击 Create 创建一个新计划。

将鼠标移到该图标上可以查看该图像

3.

输入以下信息,然后单击 OK

Name:SCHED001
Owner:HR
Description:Run at 11:00PM every night for the next year
Repeat: By Days
Interval (Days):1
Time: 11:00PM
Start: Later
Date: <当天日期>
Date:<从当天起一年>

将鼠标移到该图标上可以查看该图像

将鼠标移到该图标上可以查看该图像

4.

单击 Cluster Database:O10G 定位器链接。

将鼠标移到该图标上可以查看该图像

返回主题列表

您可能要将已保存的计划(您刚刚创建的计划)与作业关联。执行以下步骤:

1.

向下滚动。 在 Scheduler 下,选择 Jobs 链接。

将鼠标移到该图标上可以查看该图像

2.

单击 Disabled 选项卡。

将鼠标移到该图标上可以查看该图像

3.

选择 ALTER_INDX001

将鼠标移到该图标上可以查看该图像

4.

对于 Enabled 单击 Yes,然后单击 Schedule 选项卡。

将鼠标移到该图标上可以查看该图像

5.

选择 Use Pre-defined Schedule 计划类型,然后单击搜索指示灯图标以选择计划。

将鼠标移到该图标上可以查看该图像

6.

选择 SCHED001 并单击 Select

将鼠标移到该图标上可以查看该图像

7.

单击 Apply

将鼠标移到该图标上可以查看该图像

8.

单击 Scheduler Jobs 定位器链接。

将鼠标移到该图标上可以查看该图像

9.

单击 Scheduled 选项卡。

将鼠标移到该图标上可以查看该图像

10.

单击 Refresh

将鼠标移到该图标上可以查看该图像

11.

将显示您的调度作业。

将鼠标移到该图标上可以查看该图像

返回主题列表

在本教程中,您学习了如何执行下列任务:

创建一个执行 PL/SQL 块的作业
创建一个执行 PL/SQL 过程的作业
创建一个保存的规划
编辑作业以使用已保存的规划

返回主题列表

返回主题列表

将光标置于该图标上可以隐藏所有屏幕截图。