#DBMS_TASK

DBMS_TASK高级包提供了一组内置的存储过程,用于yasboot工具创建和管理分布式任务,目前仅支持扩缩容相关任务。不建议用户直接调用该高级包,避免造成不可控影响。如需直接调用DBMS_TASK高级包,必须直连主MN节点操作,否则报错。

该高级包仅适用于分布式部署。

# ADD

DBMS_TASK.ADD(
    TASK_ID  OUT BIGINT,
    TYPE     IN VARCHAR(16),
    DATA     IN JSON,
)

该存储过程用于新增一个分布式任务,创建成功后可以在TASK$系统表中查询任务相关信息。

参数 用途
TASK_ID 任务创建时自动生成的任务ID,全局唯一
TYPE 创建的任务类型,可选值包括'ADD_GROUP'、'REMOVE_GROUP','SCALE_OUT'等
DATA 创建任务需要的参数

示例(分布式部署)

DECLARE
    task_id BIGINT;
BEGIN
    DBMS_TASK.ADD(
        task_id,
        'SCALE_OUT',
        '{"GROUP": 5, "NODES": 5, "CONFIG": {"CONFIG1": "test"}}'
    );

# REMOVE

DBMS_TASK.REMOVE(
    TASK_ID  IN BIGINT,
)

该存储过程用于删除一个非执行状态的分布式任务,可通过task$系统表记录的任务信息确认是否删除成功。

参数 用途
TASK_ID 目标任务的ID

示例(分布式部署)

EXEC DBMS_TASK.REMOVE(1234);

# START

DBMS_TASK.START(
    TASK_ID  IN BIGINT,
)

该存储过程用于启动一个状态为INIT的根任务,不能直接启动某个子任务。启动后,任务状态将变为START。

参数 用途
TASK_ID 目标任务的ID

示例(分布式部署)

EXEC DBMS_TASK.START(1234);

# STOP

DBMS_TASK.STOP(
    TASK_ID  IN BIGINT,
)

该存储过程用于停止一个状态为START的根任务,不能直接停止某个子任务。

参数 用途
TASK_ID 目标任务的ID

示例(分布式部署)

EXEC DBMS_TASK.STOP(1234);

# ROLLBACK

DBMS_TASK.ROLLBACK(
    TASK_ID  IN BIGINT,
)

该存储过程用于回滚一个状态为FAILED的根任务,不能直接回滚某个子任务。

参数 用途
TASK_ID 目标任务的ID

示例(分布式部署)

EXEC DBMS_TASK.ROLLBACK(1234);
pdf-btn 下载文档
copy-btn 复制链接