2.2.5 作业管理
2.2.5.1 作业相关的概念
在管理员的工作中,许多日常工作都是固定不变的,如定期备份数据库、定期生成数据统计报表等。这些工作既单调又费时,如果这些重复工作能够自动完成,那就可以节省大量的时间。使用DM的作业系统可以让重复工作自动完成,实现日常工作自动化。该作业系统大致包含作业、警报和操作员三部分。用户需要为作业配置步骤和调度。我们还可以创建警报。当警报发生时,将警报信息通知操作员,以便操作员能够及时做出响应。
用户通过作业可以实现对数据库的操作,并将作业执行结果以通知的形式反馈给操作员。为作业创建灵活的调度方案可以满足在不同时刻运行作业的要求。用户还可以定义警报响应,当服务器发生特定的事件时,以便通知操作员或者执行预定义的作业。为了更好地理解作业与调度,下面介绍一些相关的概念。
1)操作员
操作员负责维护DM服务器运行实例。在有些企业中,操作员由一个人担任。在那些拥有很多服务器的大型企业中,操作员由多人共同担任。在预期的警报(或事件)发生时,可以通过电子邮件或其他网络发送的方式将警报(或事件)的内容通知操作员。
2)作业
作业是由DM代理程序按顺序执行的一系列指定的操作。作业可以执行更广泛的活动,包括运行DMPL/SQL脚本、定期备份数据库、对数据库数据进行检查等。可以创建作业来执行经常重复和可调度的任务,作业按照一个或多个调度的安排在服务器上执行。作业也可以由一个或多个警报触发执行,并且作业可产生警报以通知用户作业的状态(成功或者失败)。每个作业由一个或多个作业步骤组成,作业步骤是作业对一个数据库或者一个服务器执行的动作。每个作业必须至少有一个作业步骤。
3)警报
警报是系统中发生的某种事件,主要用于通知指定的操作员,以便其迅速了解系统中发生的状况。可以定义警报产生的条件,还可以定义警报发生时系统采取的动作,例如,通知一个或多个操作员执行某个特定的作业等。
4)调度
调度是用户定义的一个时间安排,在给定的时刻,系统会启动相关的作业,按作业定义的步骤依次执行。调度可以是一次性的,也可以是周期性的。
5)作业权限
通常作业的管理由DBA维护,普通用户没有操作作业的权限,为了让普通用户可以创建、配置和调度作业,需要授予普通用户管理作业的权限:ADMIN JOB。例如,将权限ADMIN JOB授予用户NORMAL_USER。默认DBA拥有全部的作业权限。权限ADMIN JOB可以用于添加、配置、调度和删除作业等,但不能用于作业环境初始化SP_INIT_JOB_SYS(1)和作业环境销毁SP_INIT_JOB_SYS(0)。
2.2.5.2 新建作业
对于刚初始化的实例,在创建代理之前,需要新建代理环境,即创建一些系统表来存储与作业相关的对象、历史记录等信息。与作业相关的系统视图和数据字典均位于SYSJOB模式下。代理环境创建完成后,就可以不用再创建了。
下面我们使用DM管理工具创建代理环境,如图2-34所示。作业相关表如图2-35所示。
图2-34 创建代理环境
图2-35 作业相关表
新建作业可以使用DM管理界面方式,也可以使用命令行方式。
示例1 新建作业,作业名为BACKUPJOB,实现每周星期日、星期三晚上10∶00进行完全备份(使用DM管理界面方式)。
(1)新建作业,如图2-36所示。
图2-36 新建作业
(2)新建作业步骤,如图2-37所示。
(3)新建作业调度,如图2-38所示。
图2-37 新建作业步骤
图2-38 新建作业调度
(4)查看新建作业,如图2-39所示。
图2-39 查看新建作业
2.2.5.3 查看作业监控结果
(1)通过表SYSJOBHISTORIES2查看作业的执行情况:
(2)通过表SYSALERTHISTORIES查看警报发生的历史记录。例如,当用户插入"INSERT INTO MYJOB VALUES(1000,'STEP 1000');"一条语句时,表SYSALERTHISTORIES的查询结果如下: