关键字
KingbaseES、kdb_scheduler、DBMS_JOB、DBMS_SCHEDULER
概述
Kdb_scheduler是KingbaseES 数库据用于自动执行计划任务的客户端工具。 支持 PL/SQL 和 BATCH两种类型的计划任务,支持远程和本地两种任务模式,支持 dbms_job 和 dbms_scheduler的主要功能。
使用方法
1. 创建 kdb_scheduler 扩展 create extension kdb_schedule;
2. 启动 kdb_scheduler 客户端 kdb_schedule -l 2 "user=test password=12345 dbname=TEST"
3. 创建计划任务 \set SQLTERM / DECLARE jobid int ; BEGIN call DBMS_JOB.submit(jobid, 'CREATE TABLE T1(A int)', now(), 'Freq=daily;BYHOUR=10;BYMINUTE=10;BYSECOND=10', false, 0, false); END; / \set SQLTERM ;
4. 查询任务 select * from kdb_schedule.kdb_job;
5. 启动任务 call dbms_job.broken(1,false,now());
6. 修改任务 call dbms_job.what(1, ‘INSERT INTO T1 VALUES(1);');
7. 暂停任务 call dbms_job.broken(1,TRUE,now());
8. 删除任务 call dbms_job.remove(1);
日历表示法:
FREQ:重复时间的类型。这里有 yearly 、 monthly 、 weekly 、 daily 、 h ourly 、 minutely
INTERVAL:重复的频率,默认值是 1
BYMONTH:指定月份
BYMONTHDAY: 指定一月中的某一天
BYHOUR: 指定一天中的某一个小时
BYMINTUE: 指定一个小时某一分钟
BYSECOND: 指定一分钟的某一秒
例子 :
每天早上10点
FREQ=DAILY;BYHOUR=10;BYMINUTE=0; BYSECOND=0;
每个隔 7天早上10点
FREQ=DAILY;INTERVAL=7;BYHOUR=10; BYMINUTE=0;BYSECOND=0;
每年10月1号早上10点
FREQ=YEARLY;BYMONTH=10; BYMONTHDAY=1;BYHOUR=10; BYMINUTE=0;BYSECOND=0;