admin 管理员组

文章数量: 1184232

KingbaseES数据库 kdb_schedule 自动定时任务

文章目录

  • KingbaseES数据库 kdb_schedule 自动定时任务
  • 前言
  • 一 安装插件 kdb_schedule
    • 1. 添加kdb_schedule
    • 2. 修改kdb_schedule所需参数:
    • 3. 重启数据库
    • 4. 加载kdb_schedule插件
  • 二 dbms_scheduler
    • 2.1 创建program
      • 创建program命令
      • 成功创建program后,查看结果:
      • 参数说明
      • 删除program
      • 2.2 创建Schedule
      • 成功创建Schedule后,查看结果:
      • 参数说明
      • 删除 Schedule
      • 2.3 创建Job
      • 成功创建Job后,查看结果:
      • 参数说明
    • 四 查看 kdb_job表:
  • 日历(设置时间)
    • 参数说明
    • 具体示例
  • 备注
  • 后记

前言

人大金仓数据库的自动定时任务是类似于Oracle的,是使用一个扩展插件kdb_schedule来完成的。 kdb_schedule又该如何使用呢?

一 安装插件 kdb_schedule

1. 添加kdb_schedule

kdb_schedule插件是人大金仓数据库KingbaseES V8R6 自带的插件,不需要自己下载,但是我们需要把他添加到参数中:
在 数据库的安装目录下找到kingbase.conf 文件修改shared_preload_libraries参数,把kdb_schedule添加到里面。

shared_preload_libraries = 'kdb_schedule' 

2. 修改kdb_schedule所需参数:

kdb_schedule的参数也是需要在kingbase.conf 文件修改,直接添加就行

  1. job_queue_processes 允许用户启动的最大并发数,当其值设置为0时,表示不启动自动作业功能,默认为0,不开启自动作业。
  2. sys_job.log_level 用于设置JOB后台进程的日志级别,更改后需要重新加载配置文件,可选项:LOG_ERROR,LOG_WARNING,LOG_DEBUG,默认为LOG_ERROR。
  3. sys_job.poll_time 用于设置轮询系统表间隔时间,单位秒,默认值为10秒。

命令行执行:

alter system set job_queue_processes=5;

3. 重启数据库

systemctl stop kingbase 停止数据库
systemctl start kingbase 启动数据库

因为加载kdb_schedule是需要重启数据库的

4. 加载kdb_schedule插件

create extension kdb_schedule;

如果这部报错,可以查看此版本的KingbaseES是否带了这个插件。

select * from pg_available_extensions;

二 dbms_scheduler

2.1 创建program

创建program命令

begin ;
  call  dbms_scheduler.create_program(program_name        => 'prog_01-cs',
                                program_type        => 'PLSQL_BLOCK',        
                                program_action      => 'call hrmw.p_test()',
                                acconnstr           => 'user=postgres dbname=cs port=6666 password=postgres123',
                                acdbname            => 'test',
                                number_of_arguments => 0,
                         

本文标签: 数据库 自动定时 KingbaseES kdbschedule