• 金仓数据库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和日历表示法的详细说明

    父主题: 

    管理数据库自动维护任务

  • 相关阅读:
    Mybatis参数传递方式
    15链表-交换节点
    你知道嵌入式开发主要做什么吗?
    如何成为一个正经的 Microsoft 365 开发者
    Nginx 通过A域名代理B域名,保持A域名访问状态
    【PostgreSQL启动,停止命令(重启)】
    论文投稿指南——收藏|SCI论文怎么投?
    算法-跳跃游戏
    cvx matlab 求不出解可尝试方法 Failed Infeasible Unbounded
    grpc c++部署
  • 原文地址:https://blog.csdn.net/arthemis_14/article/details/125890652