PAUSE JOB statement lets you pause the following types of jobs:
IMPORTjobsBACKUPandRESTOREjobs- User-created table statistics jobs
- Automatic table statistics jobs
- Changefeeds
- Schema change jobs
- Scheduled backup jobs
RESUME JOB.
If a schema change job is paused, any jobs waiting on that schema change will stop waiting and return an error.
Required privileges
To pause a job, the user must be a member of theadmin role or must have the CONTROLJOB role option set. Non-admin users cannot pause admin users’ jobs.
For changefeeds, users with the CHANGEFEED privilege on a set of tables can pause changefeed jobs running on those tables.
Synopsis
Pause all jobs by type
Parameters
Monitoring paused jobs
We recommend monitoring paused jobs. Jobs that are paused for a long period of time can start to affect the cluster in the following ways:- A paused backup, restore, or index backfill job ( schema change ) will continue to hold a protected timestamp record on the data the job is operating on. This could result in data accumulation as the older versions of the keys cannot be garbage collected. In turn, this may cause increased disk usage and degraded performance for some workloads. See Protected timestamps and scheduled backups for more detail.
- A paused changefeed job, if
protect_data_from_gc_on_pauseis set, will also hold a protected timestamp record on the data the job is operating on. Depending on the value ofgc_protect_expires_after, this can lead to data accumulation. Oncegc_protect_expires_afterelapses, the protected timestamp record will be released and the changefeed job will be canceled. See Garbage collection and changefeeds for more detail.
jobs.{job_type}.currently_paused metric to track the number of jobs (for each job type) that are currently considered paused.
You can monitor protected timestamps relating to particular CockroachDB jobs with the following metrics:
jobs.{job_type}.protected_age_sectracks the oldest protected timestamp record protecting jobs. As this metric increases, garbage accumulation increases. Garbage collection will not progress on a table, database, or cluster if the protected timestamp record is present.jobs.{job_type}.protected_record_counttracks the number of protected timestamp records held by jobs.
/_status/vars endpoint.
See the following pages for details on metrics:
Examples
Pause a single job
Pause multiple jobs
To pause multiple jobs, nest aSELECT clause that retrieves job_id(s) inside the PAUSE JOBS statement:
maxroach will be paused.
Pause by job type
To pause all jobs by the type of job, use thePAUSE ALL {job} JOBS statement. You can pause all BACKUP, RESTORE, CHANGEFEED, IMPORT jobs using this statement, for example:
Pause automatic table statistics jobs
sql.stats.automatic_collection.enabled cluster setting:
Pause jobs for a schedule
To pause jobs for a specific backup schedule, use the schedule’sid:
SELECT clause that retrieves id(s) inside the PAUSE JOBS statement:

