作业

创建、修改和删除作业可以通过以下两种方式来实现。一是通过系统过程来实现;二是通过图形化客户端 MANAGER 管理工具实现。用户选择其中的一种即可。

4.1 通过系统过程实现

4.1.1 创建、修改和删除作业

4.1.1.1 创建作业

在创建操作员之后,就可以创建作业了。创建作业通过系统过程 SP_CREATE_JOB 实现。

语法如下:

SP_CREATE_JOB (

	job_name 			varchar(128),

	enabled 			int,

	enable_email 		int,

	email_optr_name 	varchar(128),

	email_type 			int,

	enabled_netsend 	int,

	netsend_optr_name 	varchar(128),

	netsend_type 		int,

	describe varchar(8187)

)

参数详解

  • JOB_NAME

作业名称。必须是有效的标识符,同时不能是 DM 关键字。作业不能重名,重名则报错。

  • ENABLE

作业是否启用。1 启用;0 不启用。

  • ENABLE_EMAIL、EMAIL_OPTR_NAME、EMAIL_TYPE

ENABLE_EMAIL:作业是否开启邮件系统。1 是;0 否。如果开启,那么该作业相关的一些日志会通过邮件通知操作员;不开启就不会发送邮件。

EMAIL_OPTR_NAME:指定操作员名称。如果开启了邮件通知功能,邮件会发送给该操作员。在创建时系统会检测这个操作员是否存在,如果不存在则报错。

EMAIL_TYPE:如果在开启了邮件发送之后,在什么情况下发送邮件。情况分为三种:0、1、2。0 表示在作业执行成功后发送;1 表示在作业执行失败后发送;2 表示在作业执行结束后发送。

  • ENABLE_NETSEND、NETSEND_OPTR_NAME、NETSEND_TYPE

ENABLE_NETSEND:作业是否开启网络发送。1 是;0 否。如果开启,那么这个作业相关的一些日志会通过网络发送通知操作员;如果不开启就不会通知。

NETSEND_OPTR_NAME:指定操作员名称。如果开启了网络信息通知功能,则会通过网络发送来通知该操作员。在创建时系统会检测这个操作员是否存在,如果不存在则报错。

NETSEND_TYPE:如果在开启了网络发送之后,在什么情况下发送网络信息。这个情况也有三种,和上面的 EMAIL_TYPE 是完全一样的。

注意

网络发送功能只有WINDOWS早期版本上才支持(比如WIN 2000/XP),且一定要开启MESSAGER服务。WINDOWS7、8系统因为取消了MESSAGER服务,所以该功能也不支持。

  • DESCRIBE

作业描述信息,最长 500 个字节。

例如,创建一个名为 TEST 的作业。

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

创建完成这个作业后,系统就会在 SYSJOBS 中插入一条相应的记录,但是这个作业不会做任何事情,只是一个空的作业,如果需要让它执行,还需要配置这个作业。

4.1.1.2 修改作业

如果 DBA 发现某一个作业中的信息不合理需要修改,可以调用系统过程 SP_ALTER_JOB 来实现。

语法如下:

SP_ALTER_JOB (

	job_name 			varchar(128),

	enabled 			int,

	enable_email 		int,

	email_optr_name 	varchar(128),

	email_type 			int,

	enabled_netsend 	int,

	netsend_optr_name 	varchar(128),

	netsend_type 		int,

	describe 			varchar(8187)

)

参数详解

函数 SP_ALTER_JOB 的参数和 SP_CREATE_JOB 的参数完全相同,除了 JOB_NAME 不可修改外,其他的属性都可修改。对于可修改参数,如果要修改,则指定新值;如果不修改,则继续指定原值。作业属性修改后,需要重新配置作业,使修改生效。

例如,下面的语句修改了作业 TEST 的一些信息。

SP_ALTER_JOB('TEST', 0, 1, 'DBA', 2, 1, 'DBA', 2, '修改一个作业');

SP_JOB_CONFIG_START('TEST');

SP_JOB_CONFIG_COMMIT('TEST');

4.1.1.3 删除作业

如果一个作业已经执行完成,或者由于其它什么原因需要删除作业,可以调用系统过程 SP_DROP_JOB 实现。

语法如下:

SP_DROP_JOB (

	job_name varchar(128)

)

参数详解

  • JOB_NAME

作业名称。在删除时会检测这个作业是否存在,如果不存在则系统报错。

在删除一个作业时,系统会同时将与这个作业相关联的所有对象都删除。包括步骤、调度等,也就是会分别从作业表 SYSJOBSTEPS 以及 SYSSCHEDULES 中删除属于这个作业的步骤及调度。

例如,删除作业 TEST。

SP_DROP_JOB('TEST');

4.1.2 配置作业

上面所述的内容都是最基本的一些操作,所创建的作业都还不能执行任何操作,只是一个空的作业,如果想要这个作业能执行一些指定的操作,还需要对这个作业进行配置。

配置一个作业主要包括以下几个步骤:

  1. 开始作业配置;
  2. 指定要开始配置一个作业;
  3. 为指定的作业增加步骤;
  4. 为指定的作业增加调度;
  5. 结束作业配置。

只有在结束作业配置后,这个作业才算配置完成,同时如果这个作业是 ENABLE 状态的,那么它会立即生效。也就是从“结束作业配置”时刻开始就会根据它所定义的调度来执行操作了。

4.1.2.1 开始作业配置

用系统过程 SP_JOB_CONFIG_START 指定对一个作业配置的开始。

语法如下:

SP_JOB_CONFIG_START (

	job_name varchar(128)

)

参数详解

  • JOB_NAME

要配置的作业的名称。执行时会检测这个作业是否存在,如果不存在则报错。

注意

不支持在设置了DML自动提交(例如,DIsql中设置SET AUTO ON)的会话上配置作业。

开始作业配置之后到结束作业配置之前这段时间,当前会话会处于作业配置状态。配置状态不允许做任何的创建、修改、删除对象(作业、操作员、警报)的操作。开始作业配置和结束作业配置两个过程配合使用,是为了保证作业配置的完整性。

同时强烈建议:因为作业配置全部都是 DDL 操作,所以在配置过程中建议用户不要做任何的 COMMIT 操作或者设置 DDL 自动提交(例如,不要设置 dm.ini 文件中 DDL_AUTO_COMMIT=1)。否则在配置作业过程中,一旦错误的作业配置 DDL 操作被自动提交,将不能回滚。

在 DM 的作业配置过程中,如果配置出现错误时,可以直接使用 ROLLBACK 将错误的配置回滚到 SP_JOB_CONFIG_START 刚执行的状态,因为在这个过程执行时会自动提交前面所做的操作。所以在配置一个作业开始前,也需要谨慎,需要考虑前面做的操作是否需要提交。

例如,开始对作业 TEST 进行配置。

SP_JOB_CONFIG_START('TEST');

4.1.2.2 设置作业执行节点

用系统过程 SP_JOB_SET_EP_SEQNO 指定作业执行节点。

语法如下:

SP_JOB_SET_EP_SEQNO (

   job_name     varchar(128),

   ep_seqno     int

)

参数详解

  • JOB_NAME

要配置的作业的名称。执行时会检测这个作业是否存在,如果不存在则报错。

  • EP_SEQNO

DSC 集群环境中执行该作业的节点号,取值范围 [0,15]。

作业配置过程中,此系统过程的调用为可选。未调用此过程设置作业执行节点号,默认作业在控制节点上执行。

例如,下面的例子设置了作业在指定的节点号上执行。

SP_JOB_SET_EP_SEQNO(‘TEST’,2);

4.1.2.3 作业步骤

增加、删除作业步骤必须是在配置作业开始后才能进行,否则系统会报错,这样处理主要是为了保证作业配置的完整性。

4.1.2.3.1 增加步骤

增加作业的步骤通过系统过程 SP_ADD_JOB_STEP 实现。

语法如下:

SP_ADD_JOB_STEP (

	job_name 			varchar(128),

	step_name 			varchar(128),

	type 				int,

	command 			varchar(8187),

	succ_action 		int,

	fail_action 		int,

	retry_attempts 		int,

	retry_interval 		int,

	output_file_path 	varchar(256),

	append_flag 		int

)

参数详解

  • JOB_NAME

作业的名称。表示正在给哪一个作业增加步骤,这个参数必须为上面调用 SP_JOB_CONFIG_START 函数时指定的作业名,否则系统会报错,同时系统会检测这个作业是否存在,不存在也会报错。

  • STEP_NAME

表示增加的步骤名。必须是有效的标识符,同时不能是 DM 关键字。同一个作业不能有两个同名的步骤,创建时会检测这个步骤是否已经存在,如果存在则报错。

  • TYPE

步骤的类型。取值 0、1、2、3、4、5 和 6。说明如下:

0 表示执行一段 SQL 语句或者是语句块。

1 表示执行基于 V1.0 版本的备份还原(没有 WITHOUT LOG 和 PARALLEL 选项)。

2 表示重组数据库。

3 表示更新数据库的统计信息。

4 表示执行 DTS(数据迁移)。

5 表示执行基于 V1.0 版本的备份还原(有 WITHOUT LOG 和 PARALLEL 选项)。

6 表示执行基于 V2.0 版本的备份还原。

  • COMMAND

指定不同步骤类型(TYPE)下,步骤在运行时所执行的语句。它不能为空。

当 TYPE=0 时,指定要执行的 SQL 语句或者语句块。如果要指定多条语句,在语句之间必须用分号隔开。不支持多条 DDL 语句一起执行,否则在执行时可能会报出不可预知的错误信息。

当 TYPE=1 时,指定的是一个字符串。该字符串由三个部分组成:[备份模式][备份压缩类型][base_dir,…,base_dir|bakfile_path]。三部分详细介绍如下:

1.第一部分是一个字符,表示备份模式。0 完全备份;1 增量备份。如果第一个字符不是这二个值中的一个,系统会报错。

2.第二部分是一个字符,表示备份时是否进行压缩。0 不压缩;1 压缩。

3.第三部分是一个文件路径,表示备份文件的路径。路径命令有具体的格式,分以下两种:

1)对于增量备份,因为它必须要指定一个或者多个基备份路径,每个路径之间需要用逗号隔开,之后接着是备份路径,基备份路径与备份路径需要用“|”隔开,如果不指定备份路径,则不需要指定“|”,同时系统会自动生成一个备份路径。例如,01E:\base_bakdir1,
base_bakdir2|bakdir。

2)对于完全备份,因为不需要指定基备份所以就不需要“|”符号了,可以直接在第三个字节开始指定备份路径即可。例如,01E:\bakdir。如果不指定备份路径,则系统会自动生成一个备份路径。

当 TYPE 是 2、3 或 4 时,要执行的语句就是由系统内部根据不同类型生成的不同语句或者过程。

当 TYPE=5 时,指定的是一个字符串。该字符串由六个部分组成:[备份模式][备份压缩类型][备份日志类型][备份并行类型][预留][base_dir,…,base_dir | bakfile_path | parallel_file]。六部分详细介绍如下:

1.第一部分是一个字符,表示备份模式。0 完全备份;1 增量备份。如果第一个字符不是这二个值中的一个,系统会报错。

2.第二部分是一个字符,表示备份时是否进行压缩。0 不压缩;1 压缩。

3.第三部分是一个字符,表示是否备份日志。0 备份;1 不备份。

4.第四部分是一个字符,表示是否并行备份。0 普通备份;1 并行备份,并行备份映射放到最后,以“|”分割。

5.第五部分是一个保留字符,用 0 填充。

6.第六部分是一个文件路径,表示备份文件的路径。路径命令有具体的格式,分以下两种:

1)对于增量备份,因为它必须要指定一个或者多个基础备份路径,每个路径之间需要用逗号隔开,之后接着是备份路径,最后并行备份映射文件;并行映射文件,基础备份路径与备份路径需要用“|”隔开,如果不指定备份路径与并行映射文件,则不需要指定“|”,例如 01000E:\base_bakdir1,
base_bakdir2|bakdir|parallel_file_path 就是一个合法的增量备份命令。

2)对于完全备份,因为不需要指定基备份所以就不需要“|”符号了,可以直接在第三个字节开始指定备份路径即可;例如,01000E:\bakdir。如果不指定备份路径,系统会自动生成备份路径。

当 TYPE=6 时,指定的是一个字符串。该字符串由九个部分组成:[备份模式][备份压缩类型][备份日志类型][备份并行数][USE PWR][MAXPIECESIZE][RESV1][RESV2][base_dir,…,base_dir | bakfile_dir]。九部分详细介绍如下:

1.第一部分是一个字符,表示备份模式。0 完全备份;1 差异增量备份;3 归档备份;4 累计增量备份。如果第一个字符不是这四个值中的一个,系统会报错。

2.第二部分是一个字符,表示备份时是否进行压缩。取值范围为 0~9。0 表示不压缩,1 表示 1 级压缩,2 表示 2 级压缩,以此类推,9 表示 9 级压缩。

3.第三部分是一个字符,表示是否备份日志。0 备份;1 不备份。

4.第四部分是一个字符,表示并行备份并行数。取值 0 到 9。其中,0 表示不进行并行备份;1 表示使用并行数默认值 4;2~9 表示并行数。

5.第五部分为一个字符,表示并行备份时,是否使用 USE PWR 优化增量备份。0 不使用;1 使用。(只是语法支持,没有实际作用)

6.第六部分为一个字符,表示备份片大小的上限(MAXPIECESIZE)。0 表示采用默认值(32 位系统默认为 2G,64 位系统默认为 4G);1 表示 128M;2 表示 256M;,3 表示 512M;4 表示 1G;5 表示 2G;6 表示 4G;7 表示 8G;8 表示 16G;9 表示 32G。

7.第七部分为一个字符,表示是否在备份完归档后,删除备份的归档文件。0 不删除;1 删除。

8.第八部分是一个保留字符,用 0 填充。

9.第九部分是一个文件路径,表示备份文件的路径。路径命令有具体的格式,分以下两种:

1)对于增量备份,因为它必须要指定一个或者多个基础备份路径,每个路径之间需要用逗号隔开,之后接着是备份路径。基础备份路径与备份路径需要用“|”隔开,例如,01000000E:\base_bakdir1,base_bakdir2|bakdir 就是一个合法的增量备份命令。

2)对于完全备份,就不需要“|”符号了,可以直接在第八个字节开始指定备份路径即可。例如,01000000E:\bakdir。如果不指定备份路径,系统会自动生成一个备份路径。

  • SUCC_ACTION

指定步骤执行成功后,下一步该做什么事。取值 0、1、2、3。说明如下:

0 表示不报告步骤执行成功,并结束作业。

1 表示报告步骤执行成功,并结束作业。

2 表示不报告步骤执行成功,并执行下一步。

3 表示报告步骤执行成功,并执行下一步。

SUCC_ACTION 的值用两位二进制数来表示,低位为 0 表示不报告步骤结果,1 表示报告步骤结果;高位为 0 表示不执行下一步,1 表示执行下一步。

  • FAIL_ACTION

指定步骤执行失败后,下一步该做什么事。取值 0、1、2、3。说明如下:

0 表示不报告步骤执行失败,并结束作业。

1 表示报告步骤执行失败,并结束作业。

2 表示不报告步骤执行失败,并执行下一步。

3 表示报告步骤执行失败,并执行下一步。

FAIL_ACTION 的值用两位二进制数来表示,低位为 0 表示不报告步骤结果,1 表示报告步骤结果;高位为 0 表示不执行下一步,1 表示执行下一步。

  • RETRY_ATTEMPTS

表示当步骤执行失败后,需要重试的次数。取值范围 0~100 次。

  • RETRY_INTERVAL

表示在每两次步骤执行重试之间的间隔时间。不能大于 10 秒钟。

  • OUTPUT_FILE_PATH

表示步骤执行时输出文件的路径。该参数已废弃,没有实际意义。

  • APPEND_FLAG

输出文件的追写方式。如果指定输出文件,那么这个参数表示在写入文件时是否从文件末尾开始追写。1 是;0 否。如果是 0,那么从文件指针当前指向的位置开始追写。

例如,下面的语句为作业 TEST 增加了步骤 STEP1。

SP_ADD_JOB_STEP('TEST', 'STEP1', 0, 'insert into myinfo values(1000, ''Hello
World''); ', 0, 0, 2, 1, NULL, 0);

STEP1 指定的是执行 SQL 语句,其 COMMAND 参数指定的是向 MYINFO 表中插入一条记录,执行成功和失败的下一步动作都是不报告步骤执行结果并结束作业,同时指定了失败后只重试两次,时间间隔为 1 秒钟。

4.1.2.3.2 修改步骤

修改作业的步骤通过系统过程 SP_ALTER_JOB_STEP 实现。

语法如下:

SP_ALTER_JOB_STEP (

	job_name 			varchar(128),

	step_name 			varchar(128),

	type 				int,

	command 			varchar(8187),

	succ_action 		int,

	fail_action 		int,

	retry_attempts 		int,

	retry_interval 		int,

	output_file_path 	varchar(256),

	append_flag int

)

参数详解

所有参数与 SP_ADD_JOB_STEP 的参数一样。

4.1.2.3.3 删除步骤

如果用户发现一个作业中的某个步骤不需要了,可以通过系统过程 SP_DROP_JOB_STEP 删除这个步骤。

语法如下:

SP_DROP_JOB_STEP (

	job_name 	varchar(128),

	step_name 	varchar(128)

)

参数详解

  • JOB_NAME

作业名称。表示正在删除该作业下的步骤。这个参数必须为前面调用 SP_JOB_CONFIG_START 函数时指定的作业名,否则系统会报错,同时系统会检测这个作业是否存在,不存在也会报错。

  • STEP_NAME

要删除的步骤名。删除时会检测这个步骤是否存在,如果不存在则报错。

例如,为作业 TEST 删除步骤 STEP1。

SP_DROP_JOB_STEP('TEST', 'STEP1');

4.1.2.4 作业调度

增加、删除调度必须是在配置作业开始后才能进行,否则系统会报错,这样处理主要是为了保证作业配置的完整性。

4.1.2.4.1 增加调度

增加调度通过调度系统过程 SP_ADD_JOB_SCHEDULE 实现。

语法如下:

SP_ADD_JOB_SCHEDULE (

	job_name 				varchar(128),

	schedule_name 			varchar(128),

	enable 					int,

	type 					int,

	freq_interval 			int,

	freq_sub_interval 		int,

	freq_minute_interval 	int,

	starttime 				varchar(128),

	endtime 				varchar(128),

	during_start_date 		varchar(128),

	during_end_date 		varchar(128),

	describe 				varchar(500)

)

参数详解

  • JOB_NAME

作业名称。指定要给该作业增加调度,这个参数必须是配置作业开始时指定的作业名,否则报错,同时系统还会检测这个作业是否存在,如果不存在也会报错。

  • SCHEDULE_NAME

待创建的调度名称。必须是有效的标识符,同时不能是 DM 关键字。指定的作业不能创建两个同名的调度,创建时会检测这个调度是否已经存在,如果存在则报错。

  • ENABLE

表示调度是否启用,布尔类型。1 启用;0 不启用。

  • TYPE

指定调度类型。取值 0、1、2、3、4、5、6、7、8。分别介绍如下:

0 表示指定作业只执行一次。

1 按天的频率来执行。

2 按周的频率来执行。

3 在一个月的某一天执行。

4 在一个月的第一周第几天执行。

5 在一个月的第二周的第几天执行。

6 在一个月的第三周的第几天执行。

7 在一个月的第四周的第几天执行。

8 在一个月的最后一周的第几天执行。

当 TYPE=0 时,其执行时间由下面的参数 DURING_START_DATE 指定。

  • FREQ_INTERVAL

与 TYPE 有关。表示不同调度类型下的发生频率。说明如下:

当 TYPE=0 时,这个值无效,系统不做检查。

当 TYPE=1 时,表示每几天执行,取值范围为 1~100。

当 TYPE=2 时,表示的是每几个星期执行,取值范围没有限制。

当 TYPE=3 时,表示每几个月中的某一天执行,取值范围没有限制。

当 TYPE=4 时,表示每几个月的第一周执行,取值范围没有限制。

当 TYPE=5 时,表示每几个月的第二周执行,取值范围没有限制。

当 TYPE=6 时,表示每几个月的第三周执行,取值范围没有限制。

当 TYPE=7 时,表示每几个月的第四周执行,取值范围没有限制。

当 TYPE=8 时,表示每几个月的最后一周执行,取值范围没有限制。

  • FREQ_SUB_INTERVAL

与 TYPE 和 FREQ_INTERVAL 有关。表示不同 TYPE 的执行频率,在 FREQ_INTERVAL 基础上,继续指定更为精准的频率。说明如下:

当 TYPE=0 或 1 时,这个值无效,系统不做检查。

当 TYPE=2 时,表示的是某一个星期的星期几执行,可以同时选中七天中的任意几天。取值范围 1~127。具体如何取值,请用户参考如下规则。因为每周有七天,所以 DM 数据库系统内部用七位二进制来表示选中的日子。从最低位开始算起,依次表示周日、周一...周五、周六。选中周几,就将该位置 1,否则 0。例如,选中周二和周六,7 位二进制就是 1000100,转化成十进制就是 68,所以 FREQ_SUB_INTERVAL 就取值 68。

当 TYPE=3 时,表示将在一个月的第几天执行。取值范围 1~31。

当 TYPE 为 4、5、6、7 或 8 时,都表示将在某一周内第几天执行。取值范围 1~7,分别表示从周一到周日。

  • FREQ_MINUTE_INTERVAL

表示一天内每隔多少分钟执行一次。有效值范围 0~1439,单位分钟,0 表示一天内执行一次。

  • STARTTIME

定义作业被调度的起始时间。必须是有效的时间字符串,不可以为空。

  • ENDTIME

定义作业被调度的结束时间。可以为空。但如果不为空,指定的必须是有效的时间字符串,同时必须要在 STARTTIME 时间之后。

  • DURING_START_DATE

指定作业被调度的起始日期。必须是有效的日期字符串,不可以为空。

  • DURING_END_DATE

指定作业被调度的结束日期。可以为空,DURING_END_DATE 和 ENDTIME 都为空,调度活动会一直持续下去。但如果不为空,必须是有效的日期字符串,同时必须是在 DURING_START_DATE 日期之后。

  • DESCRIBE

表示调度的注释信息,最大长度为 500 个字节。

例如,下面的语句为作业 TEST 增加名为 SCHEDULE3 的调度。

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

上面的例子中,为作业 TEST 创建一个新的调度,调度名为 SCHEDULE3;ENABLE 为 1,即启用这个调度;其调度类型 TYPE 为 1,表示按天的频率来执行;FREQ_INTERVAL 为 1,说明每天都要执行;在这种类型下 FREQ_SUB_INTERVAL 参数就不会检查,随机写 0;FREQ_MINUTE_INTERVAL 指定的是 1,说明每隔一分钟就执行一次;STARTTIME 指定是从当前时间开始,CURTIME 表示系统当前时间;ENDTIME 指定 23:59:59,表示每天都是执行到这个时间为止;DURING_START_DATE 为调度的起始日期,表示系统当前日期;DURING_END_DATE 指定的为 NULL,表示这个调度指定的日期范围为从开始执行那刻起,永不停止;DESCRIBE 指定为‘一个测试调度’,这是对这个调度的注释。

4.1.2.4.2 修改调度

修改调度通过调度系统过程 SP_ALTER_JOB_SCHEDULE 实现。

语法如下:

SP_ALTER_JOB_SCHEDULE (

	job_name 				varchar(128),

	schedule_name 			varchar(128),

	enable 					int,

	type 					int,

	freq_interval 			int,

	freq_sub_interval 		int,

	freq_minute_interval 	int,

	starttime 				varchar(128),

	endtime 				varchar(128),

	during_start_date 		varchar(128),

	during_end_date 		varchar(128),

	describe 				varchar(500)

)

参数详解

所有参数与 SP_ADD_JOB_SCHEDULE 的参数一样,可参考 4.1.2.3.1 节。

4.1.2.4.3 删除调度

删除调度必须是在配置作业开始后才能进行,否则系统会报错,这样处理主要是为了保证作业配置的完整性。如果不再需要某一个调度,可以将其删除。调用的函数为 SP_DROP_JOB_SCHEDULE。

语法如下:

SP_DROP_JOB_SCHEDULE (

	job_name 		varchar(128),

	schedule_name 	varchar(128)

)

参数详解

  • JOB_NAME

作业名称。表示的是正在删除该作业下的调度,这个参数必须为上面调用 SP_JOB_CONFIG_START 函数时指定的作业名,否则系统会报错,同时系统会检测这个作业是否存在,不存在也会报错。

  • SCHEDULE_NAME

要删除的调度的调度名。删除时会检测这个调度是否存在,如果不存在则报错。

例如,删除作业 TEST 中名为 SCHEDULE3 的调度。

SP_DROP_JOB_SCHEDULE('TEST', 'SCHEDULE3');

4.1.2.5 结束作业配置

在配置过程中,可以对指定的作业增加、删除任意多个调度、步骤,但不要做提交操作以及自动提交操作,否则可能会出现作业配置不完整的问题。

在配置完成后,用户需要对前面所做的配置进行提交,表示对作业的配置已经完成,同时将这个作业加入到运行队列。这一步可以通过系统过程 SP_JOB_CONFIG_COMMIT 实现。

语法如下:

SP_JOB_CONFIG_COMMIT (

	job_name varchar(128)

)

参数详解

  • JOB_NAME

待结束配置的作业的名称。

调用这个过程时,系统会检测当前会话是否处于作业配置状态,如果不处于配置状态,则系统会报“非法的作业配置操作”的错误。

在成功执行该过程后,系统会将前面所做的所有操作提交,同时将这个作业加入到运行队列,运行的内容包括这个作业下定义的所有步骤的执行内容,执行方式就是根据这个作业下定义的所有的调度定义的执行方式来执行。

4.1.3 查看、清除作业日志记录

4.1.3.1 查看作业日志记录

创建的每一个作业信息都存储在作业表 SYSJOBS 中。通过查看表 SYSJOBS,可以看到所有已经创建的作业。

4.1.3.2 清除作业日志记录

因为日志记录会不断增加,越来越庞大,所以用户需要及时清理过时的日志。

可以通过系统过程 SP_JOB_CLEAR_HISTORIES 清除迄今为止某个作业的所有日志记录,即删除表 SYSJOBHISTORIES2、SYSSTEPHISTORIES2 中的相关记录。如果该作业还在继续工作,那么后续会在表 SYSJOBHISTORIES2、SYSSTEPHISTORIES2 中产生该作业的新日志。

语法如下:

SP_JOB_CLEAR_HISTORIES (

	job_name varchar(128)

)

参数详解

  • JOB_NAME

待清除日志的作业名。

例如,清除迄今为止作业 TEST 的所有日志记录。

SP_JOB_CLEAR_HISTORIES ('TEST');

4.2 通过图形化客户端实现

可以通过图像化客户端 MANAGER 工具实现作业的创建和配置等操作。

点击代理中的作业。可以看到新建作业、设置过滤和清除过滤、查看作业历史信息和清理作业历史信息、刷新按钮。如下所示:

新建作业界面

图4.1 新建作业界面

4.2.1 新建作业

 点击新建作业按钮,会出现作业对话框。作业对话框用于实现作业的创建与配置,包含常规、作业步骤、作业调度、DDL 四部分。

4.2.1.1 常规

作业的常规属性设置页面。如下所示:

新建作业-常规界面

图4.2 新建作业-常规界面

参数详解

  • 作业名

作业的标识名称。

  • 启用

是否启用这个作业。

  • 作业描述

作业的一些描述信息。

  • 邮件通知

在邮件通知开启的情况下,作业相关的一些日志会通过邮件来通知操作员,如果不开启则不会发送邮件。操作员列表用来选择要发送的操作员,发送时机列表用来选择消息发送的时机。

  • 网络通知

在网路通知开启的情况下,作业相关的一些日志会通过网路来通知操作员,如果不开启则不会发送消息,这个功能只有在 WINDOWS 操作系统下才会执行,同时必须开启服务 MESSAGER 才能发送成功。操作员列表用来选择要发送的操作员,发送时机列表用来选择消息发送的时机。

4.2.1.2 作业步骤

4.2.1.2.1 作业步骤设置页面

点击作业步骤界面。如下所示:

新建作业-作业步骤界面

图4.3 新建作业-作业步骤界面

参数详解

  • 上移

上移选中的作业步骤。

  • 下移

下移选中的作业步骤。

  • 编辑

修改选中的作业步骤。

  • 添加

添加一个新的作业步骤,参见作业步骤对话框。

  • 删除

删除选中的作业步骤。

4.2.1.2.2 作业步骤对话框

作业步骤对话框用于实现作业步骤的创建与修改。包括常规和高级两部分。

4.2.1.2.2.1 常规

作业步骤的常规属性设置页面。如下所示:

新建作业步骤-常规界面

图4.4 新建作业步骤-常规界面

参数详解

  • 作业名称

作业步骤所属作业的标识名称。

  • 步骤名称

作业步骤的名称。

  • 步骤类型

标识该步骤的类型,步骤的类型主要有以下几种:

  • SQL 脚本
  • 备份数据库
  • 重组数据库
  • 更新统计信息
  • 数据迁移
  • 基于备份集备份数据库

针对不同的步骤类型,需要不一样的深入设置。下面详细介绍:

  • 当类型为 SQL 脚本时,用户需要指定的要执行的 SQL 语句或者语句块。
  • 当类型为备份数据库时,界面如下所示:

常规-备份数据库界面

图4.5 常规-备份数据库界面
  • 当类型为重组数据库和更新统计信息时,不需要进一步设置任何东西。
  •  当类型为数据迁移时,界面如下所示:

常规-数据迁移界面

图4.6 常规-数据迁移界面
  •  当类型为基于备份集备份数据库时,界面如下所示:

常规-基于备份集备份数据库界面

图4.7 常规-基于备份集备份数据库界面

4.2.1.2.2.2 高级

作业步骤的高级属性配置页面。如下所示:

新建作业步骤-高级界面

图4.8 新建作业步骤-高级界面

参数详解

  • 作业步骤完成后时的操作
  • 成功时

指定这个步骤执行成功后,下一步该做什么事,有三个可选项:

  • 执行下一步
  • 报告执行成功
  • 返回第一个步骤继续执行
  • 失败时

指定这个步骤执行失败后,下一步该做什么事,有三个可选项:

  • 执行下一步
  • 报告执行失败
  • 返回第一个步骤继续执行
  • 重试次数

表示当一个步骤执行失败后,需要重试的次数。次数不能大于 100。

  • 重试间隔

表示的是在每两次步骤执行重试之间的间隔时间,间隔时间不能大于 10 秒钟。

  •  脚本输出文件
  • 输出文件

表示步骤执行时如果有输出结果,输出信息的文件路径。该参数已废弃。

  • 追加方式

输出是否以追加的方式写到输出文件。如果勾选,表示在写入文件时从文件末尾开始追写,否则从文件指针当前指向的位置开始追写。

4.2.1.3 作业调度

4.2.1.3.1 作业调度设置页面

点击作业调度界面。如下所示:

新建作业-作业调度界面

图4.9 新建作业-作业调度界面

参数详解

  • 新建

新建一个作业调度,参见作业调度对话框。

  • 编辑

修改选中的作业调度。

  • 删除

删除选中的作业调度。

4.2.1.3.2 作业调度对话框

作业调度对话框用于实现作业调度的创建与修改。

作业的常规属性设置页面。

新建作业调度-常规界面

图4.10 新建作业调度-常规界面

参数详解

  • 作业名称

作业调度所属的作业名。

  • 名称

作业调度的名称。

  • 启用

指定作业步骤是否启用。

  • 调度类型

分为反复执行和执行一次两种类型,参数不一样。执行一次只有时间和描述。下面详细介绍反复执行类型的参数。

  • 发生频率

    频率类别有天、周、月。

  • 每日频率

每日频率有执行一次,可选择相应的执行时间;也可多次执行,需要选择相应的执行时间。

  • 持续时间

默认开始时间是今天,默认无结束日期;也可以选择开始时间和结束时间,但结束时间必须大于开始时间。

  • 描述

作业调度的附加描述信息。

4.2.1.4 DDL

显示作业创建与配置的 SQL 语句。

新建作业-DDL 界面

图4.11 新建作业-DDL界面

参数详解

  • 保存

保存 SQL 脚本到文件中。

4.2.2 设置、清除过滤

当作业过多时,可以通过设置过滤条件来选择符合条件的作业。

作业-设置过滤界面

图4.12作业-设置过滤界面

点击作业,选中设置过滤,会出现如下界面。其中,过滤条件有包含、不包含和等于三种。例如,设置过滤条件为名称中包含 TEST 的作业。

作业-对象过滤界面

图4.13 作业-对象过滤界面

过滤条件使用完后,想恢复原状,看到所有作业,此时需要清除过滤条件,选中清除过滤即可。

4.2.3 查看、清除作业历史信息

4.2.3.1 查看历史作业信息

查看作业历史信息视图用于显示作业步骤的执行情况日志。作业每执行一次,自动向该视图中插入一条相关信息。这个视图中的所有记录都是由作业在运行过程中系统自动插入的,不是由用户来操作的。

查看历史作业信息界面

图4.14 查看历史作业信息界面

参数详解

  • 编号

编号为每一条作业历史记录的一个唯一标识。

  • 作业名

表示的是某一条历史记录是由哪一个作业产生的,用作业名表示。

  • 步骤名

表示的是这个历史记录是由哪一个步骤产生的,用步骤名表示。

  • 错误类型

这个列一般情况不用,现在都是 0。

  • 错误码

表示的是在步骤执行错误后,产生的错误码。

  • 错误信息

表示的是这个警报所处的数据库实例名。

  • 开始时间

任务的开始时间。

  • 开始时间

任务的结束时间。

  • 重试次数

表示这条历史记录是第几次重试时产生的,这个列记录其当前次数。

  • 是否通知

表示这条历史记录是否已经(邮件及网络发送)通知用户,如果通知则这个值为 1,否则为 0。

4.2.2.2 清除作业历史信息

清除作业历史信息,清除的是除迄今为止该作业的所有日志记录,即删除表 SYSJOBHISTORIES2、SYSSTEPHISTORIES2 中的相关记录。如果该作业还在继续工作,那么后续会产生新的历史信息。

4.2.4 修改作业

如果 DBA 发现某一个作业中的信息不合理需要修改,可以选中作业,右击查看菜单。

作业修改界面

图4.15 作业修改界面

选中修改。界面如下:

修改作业-常规界面

图4.16 修改作业-常规界面

用户根据需要,修改作业、步骤和调度即可。

4.2.5 删除作业

选中作业,右击查看菜单,可以看到删除按钮。

微信扫码
分享文档
扫一扫
联系客服