DBAtlas · 数据库运维图谱

创建计划作业

Oracle

BEGIN
  DBMS_SCHEDULER.CREATE_JOB(
    job_name        => 'NIGHTLY_MAINT',
    job_type        => 'PLSQL_BLOCK',
    job_action      => 'BEGIN my_maintenance_proc; END;',
    start_date      => SYSTIMESTAMP,
    repeat_interval => 'FREQ=DAILY; BYHOUR=3',
    enabled         => TRUE);
END;
/

DBMS_SCHEDULER.CREATE_JOB 定义计划作业;repeat_interval 通过日历表达式设置重复周期。

PostgreSQL

SELECT cron.schedule('nightly-vacuum', '0 3 * * *', 'VACUUM ANALYZE');
-- Requires the pg_cron extension. Alternative: pgAgent.

pg_cron 扩展通过 cron.schedule 以标准 cron 语法定义作业;如未安装该扩展,使用 pgAgent 或操作系统的 cron。

MySQL

SET GLOBAL event_scheduler = ON;
CREATE EVENT nightly_cleanup
ON SCHEDULE EVERY 1 DAY STARTS '2026-01-01 03:00:00'
DO
  DELETE FROM logs WHERE created_at < NOW() - INTERVAL 30 DAY;

CREATE EVENT 通过 event scheduler 运行;全局变量 event_scheduler 必须为 ON,否则事件不会触发。

SQL Server

USE msdb;
EXEC dbo.sp_add_job @job_name = N'NightlyMaint';
EXEC dbo.sp_add_jobstep @job_name = N'NightlyMaint', @step_name = N'Step1',
     @subsystem = N'TSQL', @command = N'EXEC dbo.usp_Maintenance;';
EXEC dbo.sp_add_schedule @schedule_name = N'Daily3AM',
     @freq_type = 4, @freq_interval = 1, @active_start_time = 030000;
EXEC dbo.sp_attach_schedule @job_name = N'NightlyMaint', @schedule_name = N'Daily3AM';
EXEC dbo.sp_add_jobserver @job_name = N'NightlyMaint';

SQL Server Agent 作业通过 msdb 存储过程创建:定义作业、步骤和计划并附加到服务器。SQL Server Agent 服务必须处于运行状态。

MongoDB

# Not applicable: MongoDB has no built-in scheduler. Use external cron/systemd timers, an application scheduler or a MongoDB Atlas Scheduled Trigger.

Community 版没有计划作业;需要外部调度器或 Atlas Trigger。

Redis

# Not applicable: Redis has no built-in job scheduler. Use EXPIRE/keyspace notifications for key expiry and external cron for periodic tasks.

Redis 不运行计划作业;这类需求通过 TTL/keyspace 通知和外部 cron 实现。

Elasticsearch

PUT _slm/policy/daily-snapshot
{
  "schedule": "0 30 1 * * ?",
  "name": "<snap-{now/d}>",
  "repository": "backup_repo",
  "config": { "indices": ["*"] },
  "retention": { "expire_after": "30d" }
}

SLM(Snapshot Lifecycle Management)执行计划快照;ILM 用于数据生命周期管理,Watcher 用于高级自动化。

在 DBAtlas 中打开 →