pgagent

pgagent

pgagent : A PostgreSQL job scheduler

Overview

IDExtensionPackageVersionCategoryLicenseLanguage
5880
pgagent
pgagent
4.2.3
ADMIN
PostgreSQL
C
AttributeHas BinaryHas LibraryNeed LoadHas DDLRelocatableTrusted
--s-d--
No
Yes
No
Yes
no
no
Relationships
See Also
pg_cron
pg_task
pg_jobmon
pg_partman
pglogical
pg_background
pg_repack
pg_rewrite

Packages

TypeRepoVersionPG Major CompatibilityPackage PatternDependencies
EXT
PGDG
4.2.3
18
17
16
15
14
pgagent-
RPM
PGDG
4.2.3
18
17
16
15
14
pgagent_$v-
DEB
PGDG
4.2.3
18
17
16
15
14
pgagent-
Linux / PGPG18PG17PG16PG15PG14
el8.x86_64
PGDG 4.2.3
PGDG 4.2.3
PGDG 4.2.3
PGDG 4.2.3
PGDG 4.2.3
el8.aarch64
PGDG 4.2.3
PGDG 4.2.3
PGDG 4.2.3
PGDG 4.2.3
PGDG 4.2.3
el9.x86_64
PGDG 4.2.3
PGDG 4.2.3
PGDG 4.2.3
PGDG 4.2.3
PGDG 4.2.3
el9.aarch64
PGDG 4.2.3
PGDG 4.2.3
PGDG 4.2.3
PGDG 4.2.3
PGDG 4.2.3
el10.x86_64
PGDG 4.2.3
PGDG 4.2.3
PGDG 4.2.3
PGDG 4.2.3
PGDG 4.2.3
el10.aarch64
PGDG 4.2.3
PGDG 4.2.3
PGDG 4.2.3
PGDG 4.2.3
PGDG 4.2.3
d12.x86_64
MISS
MISS
MISS
MISS
MISS
d12.aarch64
MISS
MISS
MISS
MISS
MISS
d13.x86_64
MISS
MISS
MISS
MISS
MISS
d13.aarch64
MISS
MISS
MISS
MISS
MISS
u22.x86_64
MISS
MISS
MISS
MISS
MISS
u22.aarch64
MISS
MISS
MISS
MISS
MISS
u24.x86_64
MISS
MISS
MISS
MISS
MISS
u24.aarch64
MISS
MISS
MISS
MISS
MISS

Source

Install

Make sure PGDG repo available:

pig repo add pgdg -u    # add pgdg repo and update cache

Install this extension with pig:

pig install pgagent;		# install via package name, for the active PG version

pig install pgagent -v 18;   # install for PG 18
pig install pgagent -v 17;   # install for PG 17
pig install pgagent -v 16;   # install for PG 16
pig install pgagent -v 15;   # install for PG 15
pig install pgagent -v 14;   # install for PG 14

Create this extension with:

CREATE EXTENSION pgagent;

Usage

pgagent: A PostgreSQL job scheduler

pgAgent is a job scheduling agent for PostgreSQL, capable of running multi-step batch/shell scripts and SQL tasks on complex schedules. It runs as a daemon and stores job definitions in the database.

Core Concepts

  • Job: A named schedulable unit containing one or more steps and schedules
  • Step: An individual action (SQL script or OS batch/shell command) within a job
  • Schedule: Defines when a job runs, with cron-like flexibility

Job Management via SQL

pgAgent stores its configuration in the pgagent schema. Jobs can be managed through pgAdmin or directly via SQL.

-- View all jobs
SELECT jobid, jobname, jobenabled, jobdesc
FROM pgagent.pga_job;

-- View job steps
SELECT jstid, jstjobid, jstname, jstenabled, jstkind, jstcode
FROM pgagent.pga_jobstep;

-- View job schedules
SELECT jscid, jscjobid, jscname, jscenabled,
       jscstart, jscend, jscminutes, jschours,
       jscweekdays, jscmonthdays, jscmonths
FROM pgagent.pga_schedule;

-- View job execution log
SELECT * FROM pgagent.pga_joblog
WHERE jlgjobid = 1 ORDER BY jlgstart DESC;

-- View step execution log
SELECT * FROM pgagent.pga_jobsteplog
WHERE jsljlgid IN (SELECT jlgid FROM pgagent.pga_joblog WHERE jlgjobid = 1)
ORDER BY jslstart DESC;

Step Types

KindDescription
sSQL script executed against a database
bBatch/shell command executed on the OS

Schedule Fields

FieldDescription
jscstart / jscendValid date range for the schedule
jscminutesBoolean array[60]: which minutes to run
jschoursBoolean array[24]: which hours to run
jscweekdaysBoolean array[7]: which days of week
jscmonthdaysBoolean array[32]: which days of month
jscmonthsBoolean array[12]: which months

Security

The pgAgent daemon connects to the database using a stored connection string. Only database superusers or users granted appropriate privileges on the pgagent schema tables should manage jobs.

Last updated on