管理后台作业

DBMS 中执行许多类型的后台任务,其中许多是由 DBMS 本身作为系统任务触发的,无需任何用户操作。例如,重要的后台任务包括检查点(checkpoint)或索引填充(index population)。前者由 DBMS 触发,后者可能是用户创建或修改索引定义的结果。

后台任务有以下类型:

  • IMMEDIATE(立即执行)- 一次性操作,触发后即在后台运行。

  • DELAYED(延迟执行)- 一次性操作,在未来的指定时间点于后台运行。

  • PERIODIC(周期执行)- 循环操作,在指定的时间间隔内于后台运行。

DBMS 提供了一种查看活动任务和失败后台任务的方法。活动任务是指当前正在运行,或已计划为延迟或周期性任务的任务。如果后台任务失败或启动失败,失败的详细信息将存储在失败任务列表中。请注意,失败任务列表仅存储最近的 100 个任务,且该列表不是持久性的,因此在 DBMS 重启时会被清除。

此外,需要注意的是,单个周期性任务可能会多次计入失败任务列表。

列出活动后台任务

管理员可以列出实例上活动的后台任务

语法

CALL dbms.scheduler.jobs()

返回

名称 类型

jobId

任务 ID。可用于跟踪活动任务,并将任务链接到失败的任务执行记录。

字符串

group(组)

任务所属的组。例如:INDEX_POPULATION(索引填充)、LOG_ROTATION(日志轮转)或 RAFT_SERVER(Raft 服务器)。

字符串

submitted(提交时间)

任务提交的时间戳,采用 ISO-8601 格式。

字符串

database

任务可以具有数据库范围或 DBMS 范围

  • 对于数据库范围,此列将显示数据库名称。

  • 对于 DBMS 范围,此列将为空。

字符串

submitter(提交者)

任务要么是作为用户操作的结果触发,要么是由 DBMS 本身作为系统任务触发。对于用户触发的任务,此列将包含用户名,否则为空。

字符串

description(描述)

任务的简短描述,与 currentStateDescription 不同,它在任务运行期间不会改变。

字符串

type

任务类型。值可以是 IMMEDIATEDELAYEDPERIODIC

字符串

scheduledAt(计划时间)

DELAYEDPERIODIC 任务运行的时间戳,采用 ISO-8601 格式。此列不适用于 IMMEDIATE 任务,对于该类型任务将为空。

字符串

period(周期)

PERIODIC 任务的周期,格式为 hh:mm:ss.sss

字符串

state

任务状态。由于此过程仅列出活动任务,因此它们处于 SCHEDULED(已计划)或 EXECUTING(正在执行)状态。SCHEDULED 状态仅适用于 DELAYEDPERIODIC 任务,表示该任务已计划在未来的某个时间执行。

字符串

currentStateDescription(当前状态描述)

如果任务支持报告进度,则进度将在此列中以自由格式报告,具体取决于每个任务。

字符串

列出失败的任务执行

管理员可以列出实例上执行失败的任务

语法

CALL dbms.scheduler.failedJobs()

返回

名称 类型

jobId

失败任务的 ID。

字符串

group(组)

任务所属的组。例如:INDEX_POPULATION(索引填充)、LOG_ROTATION(日志轮转)或 RAFT_SERVER(Raft 服务器)。

字符串

database

任务可以具有数据库范围或 DBMS 范围

  • 对于数据库范围,此列将显示数据库名称。

  • 对于 DBMS 范围,此列将为空。

字符串

submitter(提交者)

任务要么是作为用户操作的结果触发,要么是由 DBMS 本身作为系统任务触发。对于用户触发的任务,此列将包含用户名,否则为空。

字符串

description(描述)

任务的简短描述,与 currentStateDescription 不同,它在任务运行期间不会改变。

字符串

type

任务类型。值可以是 IMMEDIATEDELAYEDPERIODIC

字符串

submitted(提交时间)

任务提交的时间戳,采用 ISO-8601 格式。

字符串

executionStart(执行开始时间)

失败的执行开始的时间戳,采用 ISO-8601 格式。

字符串

failureTime(失败时间)

执行失败的时间戳,采用 ISO-8601 格式。

字符串

failureDescription(失败描述)

失败的简短描述。如果失败描述不足以说明问题,可以在日志中找到更多信息。

字符串