可以创建调度程序任务,以用于在特定时间执行特定操作。
必须以用户 gbasedbt 或其他授权用户身份连接 sysadmin 数据库。
要创建任务,请使用 INSERT 语句在 ph_task 表中添加一行:
1.
包含以下列的值:
a. tk_name:为任务提供唯一名称。
GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 528 -
b. tk_type:将作业类型更改为 TASK 或 STARTUP TASK。
c. tk_description:添加任务所执行的操作的描述。
d. tk_execute:添加任务所执行的操作。
该操作可以是用户定义的函数、单个 SQL 语句或使用 PREPARE SQL 创建的
多语句预编译对象,该多语句预编译对象用于在运行时组合使用一个或多个
SQL 语句。
命令长度限制为 2048 个字节。
2.
可选: 更改以下列的缺省值:
ₒ
tk_start_time:缺省启动时间为 8:00:00。对于启动任务,请将启动时间设置为
NULL。
ₒ
tk_stop_time:缺省停止时间为 19:00:00。对于启动任务,请将停止时间设置
为 NULL。
ₒ
tk_frequency:缺省频率为一天一次。对于启动任务,请将频率设置为
NULL。
ₒ
tk_group:缺省组为 MISC。
ₒ
tk_monday 到 tk_sunday:缺省值为每天运行。
任务会在指定的开始时间以及随后通过频率计算的时间运行。
示例
以下任务使用 SQL 管理 API 在周一、周三和周五早上 8 点到晚上 7 点之间,每隔两
分钟执行一个检查点。
INSERT INTO ph_task
( tk_name,
tk_description,
tk_type,
tk_group,
tk_execute,
tk_start_time,
tk_stop_time,
tk_frequency,
tk_Monday,
tk_Tuesday,
tk_Wednesday,
tk_Thursday,
tk_Friday,
GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 529 -
tk_Saturday,
tk_Sunday)
VALUES
( "Example Checkpoint",
"Example to do a checkpoint every 2 minutes.",
"TASK",
"EXAMPLES",
"EXECUTE FUNCTION admin('checkpoint')",
DATETIME(08:00:00) HOUR TO SECOND,
DATETIME(19:00:00) HOUR TO SECOND,
INTERVAL ( 2 ) MINUTE TO MINUTE,
't',
‘f',
't',
‘f',
't',
‘f',
‘f');
以下示例显示了在一天的凌晨 2:00 运行一次的任务代码,以确保 command_history 表仅
包含最近的数据。在该示例中,最近数据的定义存储在 ph_threshold 表的 Command
History Interval 列中。
INSERT INTO ph_task
(
tk_name,
tk_group,
tk_description,
tk_type,
tk_execute,
tk_start_time,
tk_frequency
)
VALUES
(
"mon_command_history",
"TABLES",
"Monitor how much data is kept in the command history table",
"TASK",
GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 530 -
"delete from command_history where cmd_exec_time < (
select current - value::INTERVAL DAY to SECOND
from ph_threshold
where name = 'COMMAND HISTORY INTERVAL' ) ",
"2:00:00",
"1 0:00:00"
);