人大金仓kingbase 自带定时任务的使用

介绍

公司国产化业务最近在使用人大金仓替换Mysql,其中设备状态表数据量过大,需要只保存当天的数据,意思就是前一天的数据都要清掉,这样就需要每天凌晨清除前一天的数据。人大金仓数据库的自动定时任务是类似于Oracle的,是使用一个扩展插件kdb_schedule来完成的。 kdb_schedule又该如何使用呢?

使用         

 人大金仓 V9R1版本的数据库事先安装好

  添加kdb_schedule 

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

shared_preload_libraries = 'kdb_schedule' 

 修改kdb_schedule所需参数                                                                                           

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

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

命令行执行:

alter system set job_queue_processes=5;

重启数据库

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

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

加载kdb_schedule插件,在Kstudio客户端执行

create extension kdb_schedule;

dbms_scheduler

创建program
call DBMS_SCHEDULER.CREATE_PROGRAM(
    program_name => 'clear_device_state',
    program_type => 'PLSQL_BLOCK',
    program_action => 'TRUNCATE TABLE `iot_dev`.device_states;',
    acconnstr => 'user=system dbname=test port=54321 password=123456',
    acdbname => 'test',
    number_of_arguments => 0,
    enabled => TRUE,
    comments => 'Clear device_state table every day at midnight');
    
创建program命令
call DBMS_SCHEDULER.CREATE_SCHEDULE(
    schedule_name => 'clear_device_state_schedule',
    start_date => now(),
    repeat_interval => 'FREQ=DAILY;BYHOUR=0;BYMINUTE=0;BYSECOND=0',
    end_date => NULL,
    comments => 'Schedule to run every day at midnight');
创建job
call DBMS_SCHEDULER.CREATE_JOB(
    job_name => 'clear_device_states_job',
    program_name => 'clear_device_state',
    schedule_name => 'clear_device_state_schedule',
    job_class => 'Routine Maintenance',
    enabled => TRUE,
    auto_drop => TRUE,
    comments => 'Automatically clear device_state table every day');

创建完之后,我们在Kstudio 上可以看到计划任务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值