IntegrationsAll integrations

Menu

Menu

›

DBA Alerting Checklist

From the PASS Summit West 2026 session

The DBA Alerting Checklist for Failed SQL Server Jobs

The DBA Alerting Checklist for Failed SQL Server Jobs

The DBA Alerting Checklist for Failed SQL Server Jobs

Fifteen checks for finding out about a failed job before your users do. Work through it in an afternoon with the tools you already run.

Fifteen checks for finding out about a failed job before your users do. Work through it in an afternoon with the tools you already run.

No form to fill out. Print it, share it, or send it to your team.

SQL AGENTON CALL
02:07
/ JOB FAILED

How to use this checklist

How to use this checklist

How to use this checklist

Each item is a yes-or-no question about your current setup. A “no” is your starting point.

The checks fall into three groups, one for each way a failed job turns into a morning incident: the alert never reaches anyone, it reaches someone who assumes it’s noise, or it reaches someone who doesn’t know it’s theirs.

Checks 01 to 05

Delivery: does the alert reach a person?

  1. New SQL Server Agent jobs don't notify anyone until someone sets it on the job's Notifications page. Check every production job, not only the ones you remember setting up.

  2. A shared inbox works as a record of what fired. When it's the only place an alert lands, everyone receives it and nobody owns it.

  3. Review SQL Agent operators, distribution lists, and on-call contacts against who's on the team now. Set a fail-safe operator as a backstop.

  4. Email won't ring through Do Not Disturb. For anything that needs action overnight, pair it with SMS, voice, push, or a chat mention. If alerts send from the server being monitored, add a path that doesn't depend on that server.

  5. A failure alert can't fire for a job that never started. A heartbeat check flags an expected success that didn't arrive, for example a separate check that alerts when a job's last successful run is too old.

Checks 06 to 10

Noise: will anyone trust the alert?

  1. A page wakes someone and needs action tonight. A ticket needs action during business hours. A log is recorded for trends, and nobody is notified.

  2. If a page can wait until morning, downgrade it to a ticket. Pages that don't need action teach people to ignore the ones that do.

  3. Duplicates usually come from layers: a job notification, an Agent alert, and a monitoring tool all firing on the same failure. Pick one source per failure. For SQL Agent alerts, the "delay between responses" setting keeps one problem from sending a stream of email.

  4. At minimum, include severity, job name, the failed step, the error, what breaks downstream and when, a runbook link, and the owner. See the sample in the next section.

  5. Count what fired and what someone acted on. Cut or downgrade anything nobody acted on.

Checks 11 to 15

Ownership: does someone know it's theirs?

  1. Anyone should be able to see who's on call tonight, including swaps and holiday coverage.

  2. An alert isn't handled until a person claims it. Without that step, two people can each assume the other one has it.

  3. Write the path down: primary, then secondary, then lead. Decide how long a page can sit before it moves up, based on what the job feeds and when.

  4. Send a test page through the whole path. Phone numbers change, and app notifications get switched off.

  5. See below. It's the fastest way to find out which of these checks you'd fail.

What a 2 a.m. alert should tell you

What a 2 a.m. alert should tell you

What a 2 a.m. alert should tell you

Read it the way you would half awake. Each field answers a question you’d otherwise spend ten minutes digging for.

SEV:      PAGE
JOB:      Nightly_Finance_Load
STEP:     4 of 7, load GL staging
ERROR:    Timeout after 3 retries
IMPACT:   06:30 finance reports
RUNBOOK:  wiki/finance-load
OWNER:    DBA on-call (primary)
Example alert. The fields matter more than the tool that sends them.

Start with one fire drill this week

Start with one fire drill this week

Start with one fire drill this week

Pick a harmless job.

Something you can fail safely.

Fail it on purpose.

At a time nobody’s expecting.

Time three things.

How long until someone detects it, acknowledges it, and fixes it.

Fix the slowest one.

Then run the drill again.

The gap between detection and acknowledgment is your real response time.

Common questions

Common questions

Common questions

How do I get an email when a SQL Server Agent job fails?

Configure Database Mail. Then enable a mail profile under SQL Server Agent Properties > Alert System, and restart SQL Server Agent. Create an operator with an email address, and on each job's Notifications page, choose to email that operator when the job fails. Send a test, because a missed step here fails silently.

What is alert fatigue?

Alert fatigue is what happens when people receive so many alerts that they start ignoring them, including the ones that matter. It's a sign the alerting setup sends too much noise, not that the team isn't paying attention. The fix is fewer, better alerts: tier every alert, and make every page actionable.

What is a heartbeat alert?

A heartbeat alert fires when something expected doesn't happen, such as a nightly job that never reports success. It catches jobs that never started, or that hung without failing, which regular failure alerts miss.

How long should an escalation timer be?

It depends on what the job feeds. A job that feeds morning reports can wait longer than one behind a customer-facing system. Work back from when the downstream impact starts, and leave enough time for the next person to act.

Rob Newman, Solutions Engineer at JAMS Software

This checklist comes from The 2 A.M. Job Failure: Rethinking How DBAs Get Alerted, presented by Rob Newman, Solutions Engineer at JAMS Software, at PASS Summit West 2026.

Jobs run when they should. Alerts reach a human who can act.

JAMS Scheduler automates and centralizes scheduled jobs across your environment. JAMS Incident Management reaches your on-call team by voice, SMS, WhatsApp, push, email, Teams, or Slack.

Jobs run when they should. Alerts reach a human who can act.

JAMS Scheduler automates and centralizes scheduled jobs across your environment. JAMS Incident Management reaches your on-call team by voice, SMS, WhatsApp, push, email, Teams, or Slack.

Jobs run when they should. Alerts reach a human who can act.

JAMS Scheduler automates and centralizes scheduled jobs across your environment. JAMS Incident Management reaches your on-call team by voice, SMS, WhatsApp, push, email, Teams, or Slack.