SHOW JOBS lists all of the types of long-running tasks your cluster has performed in the last 12 hours, including:
- Schema changes through , , , and
- .
- Enterprise and .
- .
-
created for use by the . To view , use
SHOW AUTOMATIC JOBS. -
SHOW JOBSnow displays newly added columns fromcrdb_internal.jobs(last_run,next_run,num_runs, andexecution_errors). The columns capture state related to retries, failures, and exponential backoff. These details can help you understand the status of crucial tasks that can impact the performance of your cluster, as well as help you control them.
SHOW JOBS statement. For details about , including the and the full table name, use SHOW CHANGEFEED JOBS.
To block a call to SHOW JOBS that returns after all specified job ID(s) have a terminal state, use SHOW JOBS WHEN COMPLETE. The statement will return a row per job ID, which provides details of the job execution. Note that while this statement is blocking, it will time out after 24 hours.
Considerations
- The
SHOW JOBSstatement shows only long-running tasks. - For jobs older than 12 hours, query the
crdb_internal.jobstable. - For the
SHOW JOBSstatement, jobs are deleted after 14 days. This interval can be changed via thejobs.retention_time. See Show changefeed jobs for changefeed job retention time. - While the
SHOW JOBS WHEN COMPLETEstatement is blocking, it will time out after 24 hours. - Garbage collection jobs are created for and , and will execute after the has elapsed. These jobs cannot be canceled.
- CockroachDB automatically retries jobs that fail due to or job coordination failures, with exponential backoff. The
jobs.registry.retry.initial_delaysets the initial delay between retries andjobs.registry.retry.max_delaysets the maximum delay.
Required privileges
You must have at least one of the following to runSHOW JOBS:
- New in v23.1: The
VIEWJOBprivilege, which can view all jobs (includingadmin-owned jobs). - Be a member of the
adminrole. - The .
- For changefeeds, users with the privilege on a set of tables can view changefeed jobs running on those tables.
Synopsis
Parameters
| Parameter | Description |
|---|---|
SHOW AUTOMATIC JOBS | Show jobs performed for internal CockroachDB operations. See Show automatic jobs. |
SHOW JOBS WHEN COMPLETE | Block SHOW JOB until the provided job ID reaches a terminal state. For an example, see Show job when complete. |
select_stmt | A that specifies the job_id(s) to view. |
job_id | The ID of the job to view. |
for_schedules_clause | The schedule you want to view jobs for. You can view jobs for a specific schedule (FOR SCHEDULE id) or view jobs for multiple schedules by nesting a in the statement (FOR SCHEDULES <select_clause>). For an example, see Show jobs for a schedule. |
SHOW CHANGEFEED JOBS | Show details about , including the and the full table name. For an example, see Show changefeed jobs. |
Response
The output ofSHOW JOBS lists ongoing jobs first, then completed jobs within the last 12 hours. The list of ongoing jobs is sorted by starting time, whereas the list of completed jobs is sorted by finished time.
The following fields are returned for each job:
| Field | Description |
|---|---|
job_id | A unique ID to identify each job. This value is used if you want to control jobs (i.e., , , or it). |
job_type | The type of job. Possible values: SCHEMA CHANGE, , , , and . For job types of automatic jobs, see Show automatic jobs. |
description | The statement that started the job, or a textual description of the job. |
statement | When description is a textual description of the job, the statement that started the job is returned in this column. Currently, this field is populated only for the automatic table statistics jobs. |
user_name | The name of the who started the job. |
status | The job’s current state. Possible values: pending, paused, pause-requested, failed, succeeded, canceled, cancel-requested, running, retry-running, retry-reverting, reverting, revert-failed.Refer to Jobs status for a description of each status. |
running_status | The job’s detailed running status, which provides visibility into the progress of the dropping or truncating of tables (i.e., , , or ). For dropping or truncating jobs, the detailed running status is determined by the status of the table at the earliest stage of the schema change. The job is completed when the GC TTL expires and both the table data and ID is deleted for each of the tables involved. Possible values: waiting for MVCC GC, deleting data, waiting for GC TTL, waiting in DELETE-ONLY, waiting in DELETE-AND-WRITE_ONLY, waiting in MERGING, populating schema, validating schema, or NULL (when the status cannot be determined). For the SHOW AUTOMATIC JOBS statement, the value of this field is NULL. |
created | The TIMESTAMP when the job was created. |
started | The TIMESTAMP when the job began running first. |
finished | The TIMESTAMP when the job was succeeded, failed, or canceled. |
modified | The TIMESTAMP when the is updated with the job’s progress, or when the job was paused or resumed. |
fraction_completed | The fraction (between 0.00 and 1.00) of the job that’s been completed. |
error | If the job failed with a terminal error, this column will contain the error generated by the failure. |
coordinator_id | The ID of the node running the job. |
trace_id | The job’s internal for inflight debugging. Note: This ID can only be used by the Cockroach Labs support team for internal observability. |
last_run | When a job fails with a retryable error, this column will contain the TIMESTAMP of the last attempt to run the job. |
next_run | When a job fails with a retryable error, this column will contain the TIMESTAMP of the next attempt to run the job. |
num_runs | The number of attempts to run the job. |
execution_errors | A list of any retryable errors that a job may have encountered during its lifetime. |
SHOW CHANGEFEED JOBS.
Job status
| Status | Description |
|---|---|
pending | Job is created but has not started running. |
paused | Job is . |
pause-requested | A request has been issued to pause the job. The status will move to paused when the node running the job registers the request. |
failed | Job failed to complete. |
succeeded | Job successfully completed. |
canceled | Job was . |
cancel-requested | A request has been issued to cancel the job. The status will move to canceled when the node running the job registers the request. |
running | Job is running. A job that is running will be displayed with its percent completion and time remaining, rather than the RUNNING status. |
retry-running | Job is retrying another job that failed. |
retry-reverting | The retry failed or was canceled and its changes are being reverted. |
reverting | Job failed or was canceled and its changes are being reverted. |
revert-failed | Job encountered a non-retryable error when reverting the changes. It is necessary to manually clean up a job with this status. |
We recommend monitoring paused jobs to protect historical data from , or potential data accumulation in the case of . See for detail on metrics to track paused jobs and .
Examples
Show jobs
Filter jobs
You can filter jobs by usingSHOW JOBS as the data source for a statement, and then filtering the values with the WHERE clause.
Show automatic jobs
AUTO SPAN CONFIG RECONCILIATION: A continuously running job that ensures that all declared (ALTER … CONFIGURE ZONE …) are applied. For example, whennum_replicas = 7is set on a table, the reconciliation job listens in on those changes and then informs the underlying to maintain 7 replicas for the table.AUTO SQL STATS COMPACTION: An hourly job that truncates the internalsystem.statement_statisticsandsystem.transaction_statisticstable row counts to the value of thesql.stats.persisted_rows.max. Both tables contribute to the and tables, respectively.AUTO CREATE STATS: Creates and updates .
Filter automatic jobs
You can filter jobs by usingSHOW AUTOMATIC JOBS as the data source for a statement, and then filtering the values with the WHERE clause.
Show changefeed jobs
You can display specific fields relating to jobs by runningSHOW CHANGEFEED JOBS. These fields include:
- : Guarantees all changes before or at this time have been emitted.
- : The destination URI of the configured sink for a changefeed.
full_table_names: The full for a table. For example,defaultdb.public.mytablerefers to thedefaultdbdatabase, thepublicschema, and the tablemytabletable.
topics: The topic name to which and changefeed messages will emit. If you start a changefeed with the option targeting a table with , theSHOW CHANGEFEED JOBSoutput will show the topic name with a family placeholder. For example,topic.{family}.- : The format of the changefeed messages, e.g.,
json,avro.
jobs.retention_time .
Filter changefeed jobs
You can filter jobs by usingSHOW CHANGEFEED JOBS as the data source for a statement, and then filtering the values with a WHERE clause. For example, you can filter by the status of changefeed jobs:
Show schema changes
You can show just schema change jobs by usingSHOW JOBS as the data source for a statement, and then filtering the job_type value with the WHERE clause:
Show job when complete
To blockSHOW JOB until the provided job ID reaches a terminal state, use SHOW JOB WHEN COMPLETE:
Show jobs for a schedule
To view jobs for a specific , use the schedule’sid:
id(s) inside the SHOW JOBS statement:

