一个典型示例

下面用一个简单的示例,通过使用系统过程来展示管理作业是如何操作的。分为两部分:一是配置管理作业,二是查看监控结果。

7.1 配置作业管理

配置作业管理,分为 6 大步骤。

  1. 数据准备:一张表 MYJOB,A 列为主键。
DROP TABLE MYJOB;

CREATE TABLE MYJOB(

	A 		INT primary key,

	B 		VARCHAR(8188)

);
  1. 创建作业环境:十张作业相关系统表。
SP_INIT_JOB_SYS(1);
  1. 创建操作员 TOM。可以通过表 SYSOPERATORS 查看已创建操作员的相关信息。
SP_CREATE_OPERATOR('TOM', 1, 'tom@dameng.shanghai', '192.168.0.38');
  1. 开始配置作业。

    1)创建作业 TEST。可以通过表 SYSJOBS 看到作业相关信息。

SP_CREATE_JOB('TEST', 1, 1, 'TOM', 2, 1, 'TOM', 2, '一个测试作业');

  2)开始配置作业。

SP_JOB_CONFIG_START('TEST');

  3)为作业增加一个步骤。

向表 MYJOB 中插入数据,因为 A 列是主键,所以第三条数据 A 列值重复会被报错,错误码-6602。可以通过表 SYSJOBSTEPS 查看到步骤相关信息。

SP_ADD_JOB_STEP('TEST', 'STEP', 0, 'insert into myjob values(1000,''STEP 1000'');insert into myjob values(1001, ''STEP 1001'');insert into myjob
values(1001, ''STEP 1001'');', 0, 1, 1, 1,'', 0);

  4)为作业增加一个调度。可以通过表 SYSJOBSCHEDULES 查看到调度相关信息。

SP_ADD_JOB_SCHEDULE('TEST', 'SCHEDULE', 1, 1, 1, 0, 1, CURTIME, '23:59:59',CURDATE, NULL, '一个测试调度');

  5)提交配置。

SP_JOB_CONFIG_COMMIT('TEST');
  1. 创建并关联警报
  1. 创建警报 ALERT1,指定错误码-6602。可以在表 SYSALERTS 中查看到警报的相关信息。
SP_CREATE_ALERT('ALERT1', 1, 0,12, -6602, 1, 'DDL警报测试');
  1. 关联警报,将警报 ALERT1 发送给关联的操作员 TOM。可以在表 SYSALERTNOTIFICATIONS 中查看到警报与操作员的关联信息。
SP_ALERT_ADD_OPERATOR('ALERT1','TOM',1,1);
  1. 监控作业
  1. 添加监控服务 DMJMON 管理员。可以通过表 SYSMAILINFO 查看监控服务器管理员信息。
SP_ADD_MAIL_INFO('SYSDBA','DMdba_123','192.168.0.212','admin@dameng.shanghai','admin@dameng.shanghai','888888');
  1. 开启监控服务。参考 6.2 节。

7.2 查看监控结果

  1. 通过表 SYSJOBHISTORIES2 查看作业的执行情况。
SQL> select * from sysjob.SYSJOBHISTORIES2;

行号EXEC_ID NAME START_TIME END_TIMEERRCODE ERRINFO HAS_NOTIFIED

----------------------------------------------------------------------------

1 280478578 TEST 2017-06-22 14:24:43.809 2017-06-22 14:24:44.841

   -6602 [JOBTESTSCHEDULE] 违反表[MYJOB]唯一性约束 1

......
  1. 通过表 SYSALERTHISTORIES 查看警报发生的历史记录。

例如,当用户插入"insert into MYJOB values(1000,'STEP
1000');"一条语句时,表 SYSALERTHISTORIES 的查询结果如下:

SQL> select * from sysjob.SYSALERTHISTORIES;

行号 ID ALERTNAME EVENT_TYPE SUB_TYPE USERNAME DB_NAME OPTIME OPUSER SCH_NAME  OBJ_NAME OBJ_TYPE GRANTEE_NAME ERRCODE HAS_NOTIFIED


--------------------------------------------------------------------------

1   1  ALERT1       0         0   SYSDBA     DAMENG 
2017-06-22 15:09:30 违反表[MYJOB]唯一性 约束 -6602 1
微信扫码
分享文档
扫一扫
联系客服