数据库调度 Skill
目标
当用户提到以下关键词时,使用此skill:
| 用户说法 | 执行命令 | 说明 |
|---|---|---|
| "备份数据库" | dbskiter --output-mode=ai --database=<name> scheduler backup | 执行备份 |
| "定时任务" | dbskiter --output-mode=ai --database=<name> scheduler task | 管理定时任务 |
| "任务日志" | dbskiter --output-mode=ai --database=<name> scheduler logs | 查看执行记录 |
| "启动调度器" | dbskiter --output-mode=ai --database=<name> scheduler daemon start | 启动自动执行 |
| "停止调度器" | dbskiter --output-mode=ai --database=<name> scheduler daemon stop | 停止自动执行 |
| "调度器状态" | dbskiter --output-mode=ai --database=<name> scheduler daemon status | 查看运行状态 |
| "创建工作流" | dbskiter --output-mode=ai --database=<name> scheduler workflow create | 创建DAG工作流 |
| "执行工作流" | dbskiter --output-mode=ai --database=<name> scheduler workflow submit | 提交工作流执行 |
核心命令
1. 备份数据库
dbskiter --database=<数据库名> scheduler backup --type=full
参数:
--type: full(全量) | incremental(增量)--compress: 压缩备份--tables: 指定表(逗号分隔)--output-dir: 输出目录
2. 定时任务管理
# 列出所有任务
dbskiter --database=<数据库名> scheduler task list
# 添加任务(每天凌晨2点执行备份)
dbskiter --database=<数据库名> scheduler task add daily_backup "0 2 * * *" --type=backup
# 删除任务
dbskiter --database=<数据库名> scheduler task remove daily_backup
# 启用/禁用任务
dbskiter --database=<数据库名> scheduler task enable daily_backup
dbskiter --database=<数据库名> scheduler task disable daily_backup
# 立即执行任务
dbskiter --database=<数据库名> scheduler task run daily_backup
Cron表达式格式:分 时 日 月 周
| 表达式 | 含义 |
|---|---|
0 2 * * * | 每天凌晨2点 |
0 */6 * * * | 每6小时 |
0 0 * * 0 | 每周日 |
3. 查看任务日志
# 查看所有日志
dbskiter --database=<数据库名> scheduler logs
# 查看特定任务日志
dbskiter --database=<数据库名> scheduler logs --task=daily_backup
# 只看失败日志
dbskiter --database=<数据库名> scheduler logs --status=failed
4. 调度器守护进程管理
# 启动调度器(后台自动执行定时任务)
dbskiter --database=<数据库名> scheduler daemon start
# 查看调度器状态
dbskiter --database=<数据库名> scheduler daemon status
# 停止调度器
dbskiter --database=<数据库名> scheduler daemon stop
使用流程:
- 添加定时任务:
dbskiter --database=<name> scheduler task add daily_backup "0 2 * * *" - 启动调度器:
dbskiter --database=<name> scheduler daemon start - 调度器每30秒检查一次,到达执行时间自动运行任务
- 查看日志:
dbskiter --database=<name> scheduler logs
5. DAG工作流管理
# 创建工作流
dbskiter --database=<数据库名> scheduler workflow create maintenance --desc="日常维护"
# 添加任务到工作流
dbskiter --database=<数据库名> scheduler workflow add-task maintenance backup --type=backup
dbskiter --database=<数据库名> scheduler workflow add-task maintenance analyze --type=analyze --depends=backup
# 查看工作流状态
dbskiter --database=<数据库名> scheduler workflow status maintenance
# 执行工作流
dbskiter --database=<数据库名> scheduler workflow submit maintenance
# 列出所有工作流
dbskiter --database=<数据库名> scheduler workflow list
工作流特点:
- 支持任务依赖(DAG)
- 按拓扑排序自动确定执行顺序
- 依赖任务失败会中断后续执行
AI决策流程
场景1:用户说"备份数据库"
步骤1:确认备份类型(默认full)
步骤2:执行 dbskiter --database=<name> scheduler backup --type=full
步骤3:总结备份结果
场景2:用户说"每天凌晨2点自动备份"
步骤1:执行 dbskiter --database=<name> scheduler task add daily_backup "0 2 * * *"
步骤2:确认任务已添加
步骤3:提示用户任务已启用
场景3:用户说"查看备份任务执行情况"
步骤1:执行 dbskiter --database=<name> scheduler logs --task=daily_backup
步骤2:分析执行记录
步骤3:报告成功/失败情况
输出解读
任务列表输出
============================================================
摘要: 共3个任务(2个启用,1个禁用)
============================================================
任务名称 类型 调度 状态 下次执行
--------------------------------------------------------------------------------
daily_backup backup 0 2 * * * 启用 2026-04-23T02:00:00
weekly_analyze analyze 0 0 * * 0 启用 2026-04-27T00:00:00
old_cleanup vacuum 0 3 1 * * 禁用 未知
提示: 使用 'scheduler task add' 添加新任务
任务日志输出
============================================================
摘要: 共5条日志记录 (任务: daily_backup)
============================================================
时间 任务 状态 耗时 结果
------------------------------------------------------------------------------------------
2026-04-22T02:00:00 daily_backup [OK] 45.2s 备份成功
2026-04-21T02:00:00 daily_backup [OK] 42.8s 备份成功
2026-04-20T02:00:00 daily_backup [FAIL] - 磁盘空间不足