金仓数据库KingbaseES数据库管理员指南--16管理数据库自动维护任务

目录

16.1. 关于自动维护任务

16.2. 维护窗口

16.3. 使用自动作业功能

16.4. 启用和禁用自动维护任务

16.5. 配置维护窗口


KingbaseES基于后台进程来实现自动作业功能。您可以启用和禁用某个自动作业,创建、修改和删除自动作业。

自动维护任务是指自动定期的对数据库进行维护操作的任务。

维护窗口就是自动维护任务运行的时间段。

KingbaseES通过kdb_schedule插件提供了DBMS_JOB和DBMS_SCHEDULER包,其中定义了自动作业功能的相关函数,在使用kdb_shcedule之前,我们需要将他添加到kingbase.conf文件的shared_preload_libraries中。

如果使用DBMS_JOB包创建的自动维护任务,则可以使用BROKEN子程序将job任务设置为中止,job将不会再运行但任然存在,后续可以重新启用。

创建自动作业任务后,如果需要修改维护窗口,则可以通过DBMS_JOB的INTERVAL子程序修改。更改job的作业间隔时间涉及日历表示法。

16.1. 关于自动维护任务

自动维护任务是指自动定期的对数据库进行维护操作的任务。自动维护任务是根据维护窗口进行运行的,维护窗口在创建任务时设定,通常建议设置在系统的低负载时段。你可以根据系统实际情况设置该维护窗口,还可以创建自己的维护窗口。您可以启用和禁用某个自动作业,创建、修改和删除自动作业。

KingbaseES的自动作业功能是通过kdb_schedule插件提供的DBMS_JOB和DBMS_SCHEDULER包实现,其中DBMS_JOB模式提供调度和管理计划任务的功能,该包功能可以由DBMS_SCHEDULE替代,本章节主要结合DBMS_JOB说明自动作业功能。

父主题: 管理数据库自动维护任务

16.2. 维护窗口

维护窗口就是自动维护任务运行的时间段。

维护窗口既可以是简单的时间段,也可以是复杂的时间设置。当维护窗口开启时,KingbaseES会为此窗口中的每个维护任务创建一个日程任务。每个任务的任务名在运行时声称。自动维护任务完成后,可以从数据库的计划任务中删除该任务,但仍然何以在任务的执行历史信息中看到该任务被执行过。

父主题: 管理数据库自动维护任务

16.3. 使用自动作业功能

KingbaseES通过kdb_schedule插件提供了DBMS_JOB和DBMS_SCHEDULER包,其中定义了自动作业功能的相关函数,在使用kdb_shcedule之前,我们需要将他添加到kingbase.conf文件的shared_preload_libraries中。配置命令如下:

shared_preload_libraries = 'kdb_schedule' # (change requires restart)

并重启数据库,并在数据库中通过下列create extension命令创建该插件:

create extension kdb_schedule;

以下三个配置选项可以在配置文件中指定:

  • job_queue_processes:允许用户启动的最大并发数,当其值设置为0时,表示不启动自动作业功能,默认为0,不开启自动作业。

  • sys_job.log_level:用于设置JOB后台进程的日志级别,更改后需要重新加载配置文件,可选项:LOG_ERROR,LOG_WARNING,LOG_DEBUG,默认为LOG_ERROR。

  • sys_job.poll_time:用于设置轮询系统表间隔时间,单位秒,默认值为10秒。

父主题: 管理数据库自动维护任务

16.4. 启用和禁用自动维护任务

如果使用DBMS_JOB包创建的自动维护任务,则可以使用BROKEN子程序将job任务设置为中止,job将不会再运行但任然存在,后续可以重新启用。

示例如下,将job ID为1的作业任务立刻中止:

call dbms_job.broken(1,TRUE,now());

如果想恢复使用(true为禁用,false为启用),示例如下:

call dbms_job.broken(1,FALSE,now());

如果使用DBMS_SCHEDULER包创建的维护任务,则可以使用DISABLE子程序将job任务设置为禁用,job将不会再运行但任然存在。

示例如下,将禁用名为myjob的维护任务

call DBMS_SCHEDULER.DISABLE('myjob', false, 'STOP_ON_FIRST_ERROR');

另请参阅:

KingbaseES插件参考手册的kdb_schedule版块获取关于子程序DBMS_JOB和DBMS_SCHEDULER的详细说明

父主题: 管理数据库自动维护任务

16.5. 配置维护窗口

采用DBMS_JOB创建自动作业任务后,如果需要修改维护窗口,则可以通过DBMS_JOB的INTERVAL子程序修改。更改job的作业间隔时间涉及日历表示法。

示例如下,将job ID为1的作业,更改间隔时间属性为每天晚上23点:

call dbms_job.interval(1, 'Freq=daily;BYHOUR=23;BYMINUTE=0;BYSECOND=0');

另请参阅:

KingbaseES插件参考手册的kdb_schedule版块获取关于子程序interval和日历表示法的详细说明

父主题: 

管理数据库自动维护任务

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
人大金仓数据库开发管理工具KStudio是一款功能齐全、易于上手的数据库管理工具。它提供了一个简洁易懂的界面,使得初学者和有经验的开发人员都能够轻松地操作Kingbase ES数据库。KStudio客户端具有以下功能: 1. 数据库连接管理:KStudio客户端可以轻松地连接到Kingbase ES数据库,并提供了一个简单易用的界面来管理数据库连接。 2. 数据库对象管理:KStudio客户端可以管理Kingbase ES数据库中的所有对象,包括表、视图、存储过程、触发器等等。 3. SQL编辑器:KStudio客户端提供了一个强大的SQL编辑器,可以帮助开发人员编写和调试SQL语句。 4. 数据导入和导出:KStudio客户端可以轻松地将数据导入和导出到Kingbase ES数据库中。 5. 数据库备份和还原:KStudio客户端可以帮助开发人员轻松地备份和还原Kingbase ES数据库。 6. 数据库性能监控:KStudio客户端可以监控Kingbase ES数据库的性能,并提供了一些有用的性能指标和报告。 以下是一个使用KStudio客户端连接Kingbase ES数据库的Python代码示例: ```python import pyodbc # 连接数据库 cnxn = pyodbc.connect('DRIVER={KingbaseES ODBC Driver};SERVER=localhost;PORT=54321;DATABASE=mydatabase;UID=myusername;PWD=mypassword') # 执行SQL查询 cursor = cnxn.cursor() cursor.execute("SELECT * FROM mytable") row = cursor.fetchone() while row: print(row) row = cursor.fetchone() # 关闭连接 cnxn.close() ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值