DM数据库作业管理基础

一、作业概述

DM的作业系统为用户提供了创建作业,并对作业进行调度执行以完成相应管理任务的功能。可以让这些重复的数据库任务自动完成,实现日常工作自动化。

部分说明
操作员操作员是负责维护DM服务器运行实例的个人
作业作业是由DM代理程序按顺序执行的一系列指定的操作
警报警报是系统中发生的某种事件后,会通知指定的操作员
调度调度是用户定义的一个时间安排,在给定的时刻到来时,系统会启动相关的作业

本文通过图形化和命令行两种方式对DM作业管理板块的功能进行了总结,并在最后集结了需要用到的函数,基本包含了整个作业系统。以此来加深对作业部分的理解!

二、图形化创建作业环境

2.1创建代理环境

在DM MANAGER管理工具中,右击代理。如下所示:

在这里插入图片描述
点击创建代理环境,即可创建代理环境成功。创建成功后,会增加SYSJOB模式(含系统表);同时,代理下拉菜单中出现:作业、警报和操作员。如下所示:
在这里插入图片描述
创建成功的代理界面

点击清理代理环境,是创建代理环境的相反步骤。会删除和作业相关的一切信息。
在这里插入图片描述

2.2创建、修改、删除操作员

2.2.1创建操作员

点击代理中的操作员。可以看到新建操作员、设置过滤、清除过滤和刷新按钮。如下所示:
在这里插入图片描述
选中新建操作员。会出现如下界面:
在这里插入图片描述

常规页面,用来添加操作员

2.2.2修改操作员

选中要修改的操作员。如下所示:
在这里插入图片描述
点击修改,即可出现如下界面。例如,将TOM的邮箱修改为tom@dameng.guangzhou。如下所示:
在这里插入图片描述

2.2.3 删除操作员

选中要删除的操作员名称,点击删除即可。如下所示:
在这里插入图片描述

2.3创建、修改、删除作业

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

2.3.1创建作业

点击新建作业按钮,会出现作业对话框。作业对话框用于实现作业的创建与配置,包含常规、作业步骤、作业调度、DDL 四部分。
在这里插入图片描述
填写作业名启用点击确定,一个空作业便成功创建了。

2.3.2修改(配置)作业

右击新建的作业,点击修改
在这里插入图片描述
可以修改作业名等信息,也配置作业步骤作业调度

添加作业步骤:点击添加
在这里插入图片描述
会出现如下详情页面,可在如下页面填写步骤名称,选择步骤类型,以及填写sql语句或者打开sql脚本文件。
在这里插入图片描述
也可以在高级页面设置作业步骤完成时的操作,设置完毕之后,点击确定
在这里插入图片描述

接下来可以添加作业调度,点击新建:
在这里插入图片描述
填写调度名称,选择调度类型发生频率等信息,点击确定
在这里插入图片描述
修改完信息之后就可以确定修改了。
在这里插入图片描述

2.3.3 删除作业

在作业处右击删除即可
在这里插入图片描述

2.4创建、修改、删除警报

2.4.1创建警报

在警报处右击,可以进行新建警报
在这里插入图片描述

进入警报界面,填好警报名,选择警报类型错误类型等基本信息之后,就可以进入通知信息界面的设置
在这里插入图片描述
通知信息界面如下所示,界面中包含了可选择电子邮件通知操作员或者网络消息通知操作员,选择完毕之后点击确定,警报便创建完成!
在这里插入图片描述

2.4.2修改警报

在已有的警报下右击,点击修改,即可进行修改该警报
在这里插入图片描述

2.4.3 删除警报

在已有的警报下右击,点击删除,即可进行删除该警报
在这里插入图片描述

2.5监控作业

2.5.1为监控服务配置管理员

右击代理,选中配置代理属性
在这里插入图片描述
进入如下页面,点击添加按钮,即可添加管理员
在这里插入图片描述
进入如下页面,填写登录名登录密码Email地址服务器,如果不勾选SMTP服务器要求身份验证,则用户名和密码不起作用。
在这里插入图片描述
创建好之后,点击确定,管理员就配置完成了。
在这里插入图片描述
在以上界面中,还可修改删除管理员!

2.5.2开启监控服务

控制台进入tool工具下的dmservice.sh工具,查看服务
在这里插入图片描述
右击该服务,点击属性,即可查看该服务。
在这里插入图片描述
点击数据库连接串,输入将要用到的主库名、端口号、监控服务管理员的用户名和密码。此处的管理员必须6.1节中添加成功的管理员,即表SYSMAILINFO中可以查询到的。例如,主库名192.168.0.38,端口号5236,用户名SYSDBA,密码SYSDBA。
在这里插入图片描述

三、命令行创建作业环境

3.1创建代理环境

创建SYSJOB模式(创建代理)及系统表的语句,语法如下:

SP_INIT_JOB_SYS(1);

删除SYSJOB模式(删除代理)及系统表的语句,语法如下:

SP_INIT_JOB_SYS(0);

3.2创建、修改、删除操作员

3.2.1创建操作员

在数据库中创建了前述作业管理表后,就可以进行作业的配置了。由于在创建一个作业时必须要指定操作员,所以需要创建一个操作员。

创建操作员可以直接通过调用系统过程来实现,过程名为SP_CREATE_OPERATOR,所创建的操作员信息都会存储于表SYSOPERATORS中。表结构如下:

SP_CREATE_OPERATOR (
	opr_name 		varchar(128),  #操作员名称
	enabled 		int,           #是否启用这个操作员
	emailaddr 		varchar(128),  #操作员的EMAIL地址
	netsend_ip 		varchar(128)   #操作员的IP地址
)

例如,创建一个名为TOM的操作员。

SP_CREATE_OPERATOR('TOM', 1, 'tom\@dameng.shanghai', '192.168.0.38');
3.2.2修改操作员

如果DBA希望修改某一个操作员的某些信息,DM也提供了相应的系统过程,函数名为SP_ALTER_OPERATOR。表结构如下:

SP_ALTER_OPERATOR (
	opr_name 		varchar(128),  #操作员名称
	enabled 		int,           #是否启用这个操作员
	emailaddr 		varchar(128),  #操作员的EMAIL地址
	netsend_ip 		varchar(128)   #操作员的IP地址
)

例如,修改操作员TOM的信息,修改了TOM的IP地址,并将TOM置为不可用。

SP_ALTER_OPERATOR('TOM', 0, 'tom\@dameng.shanghai', '192.168.0.38');
3.2.3 删除操作员

可以通过调用系统过程来删除一个操作员,过程名为 SP_DROP_OPERATOR。表结构如下:

SP_DROP_OPERATOR (
	opr_name varchar(128)
)

例如,删除名为TOM的操作员。

SP_DROP_OPERATOR('TOM');

3.3创建、修改、删除作业

3.3.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)             #作业描述信息
)

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

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

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

3.3.2修改作业

如果 DBA 发现某一个作业中的信息不合理需要修改,可以调用系统过程 SP_ALTER_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)             #作业描述信息
)

例如,下面的语句修改了作业 TEST 的一些信息。作业属性修改后,需要重新配置作业,使修改生效

SP_ALTER_JOB('TEST', 0, 1, 'DBA', 2, 1, 'DBA', 2, '修改一个作业');
SP_JOB_CONFIG_START('TEST');
SP_JOB_CONFIG_COMMIT('TEST');
3.3.3 删除作业

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

SP_DROP_JOB (
	job_name varchar(128)   #作业名称
)

例如,删除作业 TEST。

SP_DROP_JOB('TEST');
3.3.4配置作业

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

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

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

只有在结束作业配置后,这个作业才算配置完成。
用系统过程 SP_JOB_CONFIG_START 指定对一个作业配置的开始。语法如下:

SP_JOB_CONFIG_START (
	job_name varchar(128)  #作业的名称
)

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

SP_JOB_CONFIG_START('TEST');   

增加作业的步骤通过系统过程 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            #输出文件的追写方式
)

例如,下面的语句为作业 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秒钟。

修改作业的步骤通过系统过程 SP_ALTER_JOB_STEP 实现,其参数和SP_ADD_JOB_STEP一样。
如果用户发现一个作业中的某个步骤不需要了,可以通过系统过程 SP_DROP_JOB_STEP 删除这个步骤。语法如下:

SP_DROP_JOB_STEP (
	job_name 	varchar(128),     #作业名
	step_name 	varchar(128)      #步骤名
)

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

SP_DROP_JOB_STEP('TEST', 'STEP1');

3.4创建、修改、删除警报

3.4.1创建警报

创建一个警报可以通过系统过程 SP_CREATE_ALERT 实现。警报的定义信息都存储在系统表 SYSALERTS 中。语法如下:

SP_CREATE_ALERT (
	name 			varchar(128),   #警报名
	enabled 		int,            #警报是否开启
	type 			int,            #警报类型
	errtype 		int,            #触发警报的错误和数据库事件
	errcode 		int,            #指定错误码
	delaytime 		int,            #警报发生后,推迟多长时间通知操作员
	describe 		varchar(8187)   #警报的注释
)

例如,创建一个名为 ALERT1 的警报。

SP_CREATE_ALERT('ALERT1',1, 0, 1, -600, 1, '错误码的测试');
#创建了一个名为 ALERT1 的警报,ENABLE 为 1 表示开启,TYPE 为 0 表示发生错误时警报,
#ERRTYPE 指定的是 1 表示常规错误,表示只有发生常规错误时警报才发生,
#DELEYTIME 指定可以推迟 1 秒钟通知操作员。
#警报发生后,系统会将对应信息存储到上面提到的 SYSALERTHISTORIES 表中。
3.4.2修改警报

修改警报可以通过系统过程 SP_ALTER_ALERT 来实现。其参数和SP_CREATE_ALERT是一样的。
例如,下面的语句修改警报 ALERT1。

SP_ALTER_ALERT('ALERT1', 1, 1, 1, 15, 1, 'DDL警报测试');
#修改警报ALERT1,ENABLE还是原来的值,没有被修改;
#TYPE修改为1,表示对事件的捕获;ERRTYPE 修改为 1,表示的是对事件中的 DDL 进行捕获;
#ERRCODE修改为15,四种类型CREATE、ALTER、DROP、TRUNC,15为二进制1111,就是选中了这四个操作;
#DELAYTIME 没有被修改;ADDITION_TXT 被修改为'DDL 警报测试'。
#修改后的警报只要系统做了DDL操作就会被激发,同时会将信息存储到SYSALERTHISTORIES表中。
3.4.3 删除警报

删除警报通过调用系统过程 SP_DROP_ALERT 实现。语法如下:

SP_DROP_ALERT (
	name varchar(128),  #警报名
)

例如 , 下面的语句删除警报 ALERT1。

SP_DROP_ALERT('ALERT1');
3.4.4为警报关联操作员

一个警报可以关联多个操作员。语法如下:

SP_ALERT_ADD_OPERATOR (
	alertname 		varchar(128),   #警报名
	opr_name 		varchar(128),   #操作员名
	enablemail 		int,            #是否用邮件的方式通知指定的操作员
	enablenetsent 	int             #是否用网络发送的方式通知指定的操作员
)

例如,下面的语句指定 ALERT1 警报的执行结果用邮件和网络两种方式通知操作员 TOM。

SP_ALERT_ADD_OPERATOR('ALERT1','TOM',1,1);

当不再需要某个警报与操作员的关联,可以通过系统过程 SP_ALERT_DROP_OPERATOR 来取消关联。语法如下:

SP_ALERT_DROP_OPERATOR (
	alertname 	varchar(128),
	opr_name 	varchar(128)
)

3.5监控作业

监控作业是指把作业的运行情况通过电子邮件发送给作业操作员。邮件成功发送的前提有两个:
一是为监控服务配置管理员;二是开启监控服务

3.5.1为监控服务配置管理员

可以通过SP_ADD_MAIL_INFO添加监控服务管理员。语法如下:

SP_ADD_MAIL_INFO (
	login_name 		varchar(128), #监控服务管理员名称,必须是有效的数据库登录用户
	login_pwd 		varchar(128), #登录时的密码
	smtp_server 	varchar(128), #邮件SMTP服务器
	email 			varchar(128), #用户的电子邮件地址
	user_name 		varchar(128), #邮件用户名(和邮件地址写法要完全一样)
	user_pwd 		varchar(128)  #邮箱登录密码
)

例如,增加一个DMJMON操作员的信息。

SP_ADD_MAIL_INFO('SYSDBA','SYSDBA','192.168.0.212','gyf@dameng.shanghai',
'gyf@dameng.shanghai','******'); 

修改某个作业操作员的信息,可以通过SP_ALTER_MAIL_INFO来实现,其参数和SP_ADD_MAIL_INFO是一样的。

删除一个作业操作员,可以通过SP_DROP_MAIL_INFO来实现,则该操作员失效,不会再向该操作员发送信息。语法如下:

SP_DROP_MAIL_INFO (
login_name varchar(128) #待删除操作员的名称
)
例如,删除操作员SYSDBA的信息。

SP_DROP_MAIL_INFO ('SYSDBA');
3.5.2开启监控服务

进入DM安装目录下的bin目录,直接打开应用程序dmjmon就可以启动监控服务。

例如,开启作业监控服务器。

./dmjmon userid=SYSDBA/SYSDBA@192.168.0.38:5236

四、总结

以下是我总结的DM作业管理常用函数,除了最后一个启动作业监控服务是在DM的bin目录下执行外,其余函数全在disql或者manager中去执行。
在这里插入图片描述

以上就是有关DM作业管理的基础内容啦,清楚了整套作业管理系统后,是不是觉得对于一些定期要做的基础性的操作会更省力了呢?后续我会继续更新有关DM作业管理的实战内容。以上内容如有问题,欢迎相互交流沟通!


达梦在线服务平台: https://eco.dameng.com


  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值