达梦数据库学习之DM数据库作业操作(命令行)

DM数据库作业操作(命令行)

一、创建作业

创建作业通过系统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:作业是否开启邮件系统。1:是;0:否。如果开启,那么该作业相关

    的一些日志会通过邮件通知操作员;不开启就不会发送邮件。

  • EMAIL_OPTR_NAME:指定操作员名称。如果开启了邮件通知功能,邮件会发送给该操

    作员。在创建时系统会检测这个操作员是否存在,如果不存在则报错。

  • EMAIL_TYPE:如果在开启了邮件发送之后,在什么情况下发送邮件。情况分为三种:

    0、1、2。0 表示在作业执行成功后发送;1 表示在作业执行失败后发送;2 表示在作业执行

    结束后发送

  • ENABLE_NETSEND:作业是否开启网络发送。1:是;0:否。如果开启,那么这个作

    业相关的一些日志会通过网络发送通知操作员;如果不开启就不会通知。

  • NETSEND_OPTR_NAME:指定操作员名称。如果开启了网络信息通知功能,则会通过网

    络发送来通知该操作员。在创建时系统会检测这个操作员是否存在,如果不存在则报错。

  • NETSEND_TYPE:如果在开启了网络发送之后,在什么情况下发送网络信息。这个情况

    也有三种,和上面的 EMAIL_TYPE 是完全一样的

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

    例如:新建一个全备的bakfull作业,为开启状态,不启用邮件通知,无需操作员,无需网络发送,描述为空

call SP_CREATE_JOB('bakfull',1,0,'',0,0,'',0,'');

创建完成这个作业后,系统就会在 SYSJOBS 中插入一条相应的记录,但是这个作业不

会做任何事情,只是一个空的作业,如果需要让它执行,还需要配置这个作业。

二、修改作业

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

函数 SP_ALTER_JOB 的参数和 SP_CREATE_JOB 的参数完全相同,除了 JOB_NAME 不可修

改外,其他的属性都可修改。对于可修改参数,如果要修改,则指定新值;如果不修改,则

继续指定原值。作业属性修改后,需要重新配置作业,使修改生效。

三、删除作业

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

SP_DROP_JOB (
JOB_NAME VARCHAR(128)
)

例如:删除我们刚才创建的backfull备份作业

SP_DROP_JOB('backfull');

四、配置作业

创建完作业后不能执行操作,原因是我们还未设置作业将要做什么事,还需要对这个作业进行配置。

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

  1. 开始作业配置;

  2. 指定要开始配置一个作业;

  3. 为指定的作业增加步骤;

  4. 为指定的作业增加调度;

  5. 结束作业配置。

只有在结束作业配置后,这个作业才算配置完成,同时如果这个作业是 ENABLE 状态的,那么它会立即生效。

4.1配置作业

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

SP_JOB_CONFIG_START (
JOB_NAME VARCHAR(128)
)

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

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

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

4.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('backfull',2);

4.3增加步骤

增加作业的步骤通过系统过程 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:增量备份。如果第一个字

    符不是这二个值中的一个,系统会报错。

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

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

    两种:

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

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

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

    或者过程。

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

    1. 第一部分是一个字符,表示备份模式。0:完全备份;1:增量备份。如果第一个字

    符不是这二个值中的一个,系统会报错。

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

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

    3. 第四部分是一个字符,表示是否并行备份。0:普通备份;1:并行备份,并行备份

    映射放到最后,以“|”分割。

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

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

    两种:

    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:累计增量备份。如果第一个字符不是这四个值中的一个,系统会报错。DM8 作业系统使用手册

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

    1 表示 1 级压缩,2 表示 2 级压缩,以此类推,9 表示 9 级压缩。

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

    2. 第四部分是一个字符,表示并行备份并行数。取值范围 0~9。其中,0 表示不进行

    并行备份;1 表示使用并行数默认值 4;2~9 表示并行数。

    1. 第五部分为一个字符,表示并行备份时,是否使用 USE PWR 优化增量备份。0:不

    使用;1:使用。(只是语法支持,没有实际作用)

    1. 第六部分为一个字符,表示备份片大小的上限(MAXPIECESIZE)。0 表示采用默

    认值(32 位系统默认为 2G,64 位系统默认为 4G);1 表示 128M;2 表示 256M;,3 表示

    512M;4 表示 1G;5 表示 2G;6 表示 4G;7 表示 8G;8 表示 16G;9 表示 32G。

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

    除;1:删除。

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

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

    两种:

    1. 对于增量备份,因为它必须要指定一个或者多个基础备份路径,每个路径之间需要

    用逗号隔开,之后接着是备份路径。基础备份路径与备份路径需要用“|”隔开,例

    如,01000000E:\base_bakdir1,base_bakdir2|bakdir 就是一个合法的增

    量备份命令。

    1. 对于完全备份,就不需要“|”符号了,可以直接在第八个字节开始指定备份路

    径即可。例如,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,那么从文件指针当前指向的位置开始追写。

​ 例 下面的语句为作业 backfull 增加了步骤 bak1。

call SP_ADD_JOB_STEP('bakfull', 'bak1', 6, '01020000/dm/dmbak', 0, 0, 0, 0, NULL, 0);

​ bak1指定是基于 V2.0 版本的备份还原,其COMMAND 参数指定的是完全备份开启1级压缩备份日志并行度为2,不适用PWR备份优化,采用默认备份片大小设置,在备份完不删除归档日志,备份路径为/dm/dmbak,执行成功和失败的下一步动作都是不报告步骤执行结果并结束作业,同时不指定了失败后重试,不指定时间间隔。

4.4修改步骤

修改作业的步骤通过系统过程 SP_ALTER_JOB_STEP 实现,所有参数与 SP_ADD_JOB_STEP 的参数一样。

4.5删除步骤

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

SP_DROP_JOB_STEP (
JOB_NAME VARCHAR(128),
STEP_NAME VARCHAR(128)
)
SP_DROP_JOB_STEP('bakfull', 'bak1');

4.6增加作业调度

增加调度通过调度系统过程 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 时,表示每几个月的最后一周执行,取值范围没有限制。

达梦数据库社区地址:https://eco.dameng.com

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值