本教程介绍了如何使用数据库 Scheduler 自动执行作业。
大约 30 分钟
本教程包括下列主题:
| 概述 | ||
| 前提条件 | ||
| 设置 HR 用户的权限 | ||
| 创建一个执行 PL/SQL 块的作业 | ||
| 创建一个执行 PL/SQL 过程的作业 | ||
| 创建保存的计划 | ||
| 编辑作业以使用保存的计划 | ||
| 总结 | ||
| 相关信息 | ||
将光标置于此图标上可以加载和查看本教程的所有屏幕截图。(警告:因为此操作会同时加载所有屏幕截图,所以网速较慢时,响应时间可能会比较长。)
注意:此外,还可以在下面的步骤中将光标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。
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:// 输入 sys 作为用户名,指定口令,以 SYSDBA 身份连接,然后单击 Login。 |
|
| 2. |
单击 Administration 选项卡。 |
|
| 3. |
选择 Users。 |
|
| 4. |
在 Name 域中输入 HR,然后单击 Go。 然后,选择 HR 用户。 |
|
| 5. |
单击 System Privileges 选项卡。 |
|
| 6. |
单击 Modify。 |
|
| 7. |
选择权限 CREATE ANY JOB 和 SELECT 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 |
|
| 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 |
|
| 4. |
已经创建了过程。 单击 Cluster Database:O10G 定位器链接。 |
|
现在可以创建作业。执行以下步骤:
| 1. |
向下滚动并在 Scheduler 下选择 Jobs 链接。 |
|
| 2. |
单击 Create。 |
|
| 3. |
输入以下信息,然后单击 Change Command Type。 Name:ALTER_INDX_PROC001 |
|
| 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 |
|
| 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 过程的作业 | ||
| 创建一个保存的规划 | ||
| 编辑作业以使用已保存的规划 | ||
| 要了解关于 Oracle 数据库 10g 的更多信息,请参考 OTN 网站上的其他 OBE。 | ||
| 有关本 OBE 教程的问题,请在 OBE Discussion Forum 上发布查询。 | ||