Azure DevOps Server Backup: A Practical Admin Runbook

0

Azure DevOps Server backup planning is not glamorous work. Nobody opens the Azure DevOps Server Administration Console and whispers, “finally, my moment.” But when a collection database gets corrupted, a storage array misbehaves, or a data-tier migration suddenly becomes urgent, your backup runbook becomes the most popular document in the building.

This guide gives Azure DevOps Server admins a practical, review-friendly runbook: what to back up, how to schedule it, where marked transactions matter, what to test, and which guardrails keep a restore from turning into a late-night archaeology dig. The goal is simple: make recovery boring. Boring recovery is beautiful recovery.

Azure DevOps Server backup map showing application tier, SQL data tier, reporting services, and offsite backup copy.
Map the moving parts before you automate the backup. Azure DevOps Server data lives in SQL Server databases; optional reporting and analysis components add their own recovery materials.

Azure DevOps Server backup: what actually needs protection?

Azure DevOps Server stores the information needed to restore a deployment in SQL Server databases. Microsoft’s backup guidance is clear on the big idea: you do not need to back up every client machine or every application-tier server to recover the Azure DevOps data. You need reliable, synchronized backups of the databases that make up the data tier.

ComponentTypical database or recovery itemRunbook note
ConfigurationTfs_Configuration or customized equivalentRequired. Treat it as deployment-critical.
Project collectionsOne database per project collectionRequired. Add new collection databases to the plan immediately.
WarehouseTfs_WarehouseRequired for deployments using the warehouse/reporting stack.
Reporting ServicesReportServer, ReportServerTempDB, encryption keyRequired if reporting is configured. The encryption key matters.
Analysis ServicesTfs_AnalysisRequired if analysis is configured.
Legacy SharePoint integrationSharePoint admin/content databasesOnly for older integrated deployments. SharePoint integration is deprecated after TFS 2017, but old farms still exist in the wild.

The sneaky admin trap is growth. Azure DevOps Server creates a new database when a new project collection is created. If your maintenance plan never learns about that database, you have a collection with a very confident-looking but incomplete recovery story. Future-you will not send thank-you biscuits.

Start with the Scheduled Backups Wizard when you can

For many deployments, the easiest supported path is the Scheduled Backups tool in the Azure DevOps Server Administration Console. It is built for the Azure DevOps Server data tier and helps admins create a regular backup schedule without hand-rolling every SQL Server job from scratch.

  • Confirm the configuring account has the required Azure DevOps and SQL Server permissions.
  • Give the Azure DevOps service account appropriate permissions on each SQL Server instance and full control on the backup location.
  • Use a network-accessible backup path, not a mystery folder on a server that only one person remembers.
  • Configure retention deliberately so backup storage does not become a very expensive junk drawer.
  • If reporting is enabled, back up the Reporting Services encryption key.
  • Take an immediate backup after configuring the schedule if the first scheduled run is not soon.
Suggested Azure DevOps Server backup schedule with full, differential, transaction log, and restore test checkpoints.
A practical cadence: regular full backups, shorter-interval differentials/log backups where appropriate, plus transaction marks before coordinated backups.

Use marked transactions when databases must restore together

The most important concept in an Azure DevOps Server backup strategy is synchronization. Azure DevOps Server databases are related. Restoring one database from Tuesday and another from Thursday can create mismatched state and confusing failures. Microsoft recommends synchronizing related database backups to the same point in time, and marked transactions are the classic way to establish common recovery points across databases.

Think of a marked transaction as the admin equivalent of yelling “everyone freeze” across the databases before the backup choreography begins. The mark gives you a shared restoration point so the databases can move back together instead of each doing interpretive dance.

Guardrail: If your deployment uses manual SQL Server maintenance plans instead of the Scheduled Backups tool, document how transaction marks are created, how often they run, and exactly which databases are included.

Recommended runbook structure

Your runbook should be written for the person who gets paged at 2:17 AM, not the person who designed the platform three years ago while properly caffeinated. Keep it direct, versioned, and specific.

Runbook sectionWhat to captureWhy it matters
InventoryApplication tiers, SQL instances, collection databases, reporting/analysis components, backup share, service accountsReduces guessing during an outage.
Backup scheduleFull, differential, transaction log, retention, transaction mark timingShows recovery point expectations clearly.
Restore pathsSame-server restore, new-hardware restore, app-tier recovery, reporting key restoreDifferent incidents need different procedures.
Validation checksCollection attach, project access, repo clone, pipeline queue, work item query, reporting smoke testsConfirms business usability, not just “SQL restored.”
Contacts and approvalsPlatform owner, SQL DBA, backup admin, network/storage, security, business approverStops the incident bridge becoming a people search engine.

Same-server restore vs new-hardware restore

A same-server restore usually aims to return a corrupted or damaged deployment to a previous known-good state. A new-hardware restore is different: you may be moving databases to a different SQL Server instance, rebuilding application-tier services, restoring reporting encryption keys, and validating that names, accounts, URLs, certificates, and integrations still line up.

Restore decision visual contrasting same-server restore, new hardware restore, and disaster recovery rehearsal.
Same-server restores and new-hardware restores are related but not identical. Your runbook should call out the path before the incident does.

For a new SQL Server target, Microsoft’s restore guidance calls out details that deserve a bright yellow sticky note: SQL Server version, service pack level, collation settings, and language edition should match the original database server. That is not decorative trivia. Mismatches can derail restore or leave Azure DevOps Server behaving badly after the restore appears to succeed.

Practical restore checklist

  1. Declare the restore objective. Are you recovering from corruption, failed hardware, accidental deletion, ransomware containment, or a migration rehearsal?
  2. Freeze changes if needed. Use the documented Azure DevOps service control procedures when the restore process requires services to stop.
  3. Identify the complete backup set. Include full backups, differentials, transaction logs, marked transaction details, reporting databases, analysis databases, and the report server encryption key where applicable.
  4. Restore databases together. Use the same recovery point for related Azure DevOps databases.
  5. Repair ownership and service configuration. Follow Microsoft’s documented steps for database ownership, application-tier configuration, reporting, and optional legacy integrations.
  6. Run smoke tests before reopening broadly. Check sign-in, collection visibility, source control, work items, build/release/pipeline behavior where relevant, service hooks, package feeds, and reporting.
  7. Record the timeline. Capture start time, restore point, issues, decisions, and the final validation result.

Backup guardrails admins should automate

This is where the tedious stuff becomes useful automation. If your team already monitors Azure subscriptions with scripts, scheduled jobs, or tools like Azure Resource Graph guardrails, apply the same discipline to the on-prem Azure DevOps Server estate.

  • Backup job health: alert on failed, skipped, or unexpectedly long backup jobs.
  • Freshness: check the newest backup age for every required database.
  • Coverage: compare the list of collection databases against the backup plan.
  • Storage: monitor free space and retention drift on backup targets.
  • Encryption-key custody: verify that Reporting Services encryption-key backup location and password escrow are documented.
  • Restore evidence: keep the date and result of the most recent test restore where auditors and humans can find it.

Monkey note: “The backup job succeeded” and “we can restore the service” are cousins, not twins. Be friendly to both.

The quarterly recovery drill

At least quarterly, run a recovery drill in a non-production lab. Do not improvise the process from memory. Use the runbook, time the steps, note ambiguity, and update the document immediately afterward. If the runbook only works when one specific senior admin is in the room, the runbook is not finished.

Azure DevOps Server recovery drill checklist showing backup verification, restored lab, smoke tests, and lessons learned.
A backup that has never been restored is a strongly worded wish. Test the restore path in a lab and keep the lessons in the runbook.
Drill testPass condition
Database restoreAll required databases restore to the documented point without synchronization errors.
Application tierAdmin console recognizes the deployment and core services start cleanly.
User accessTest users can reach expected projects and collections.
Developer workflowRepository clone/fetch, work item query, and pipeline or build validation succeed where applicable.
ReportingReports load, or the documented reporting recovery limitation is accepted and tracked.

Common mistakes to avoid

  • Backing up only the obvious database. Collection databases are not the whole deployment.
  • Forgetting new project collections. Every new collection adds backup responsibility.
  • Skipping the report server encryption key. Reporting databases without the key can become a restoration headache.
  • Restoring databases to different points in time. This is how small fires become conference calls.
  • Never testing a restore. A backup strategy without a restore test is just optimism wearing a lanyard.
  • Letting backup storage live beside the blast radius. Keep secure offsite or separate-location copies for disaster scenarios.

Final take

A reliable Azure DevOps Server backup runbook is part technical checklist, part operational muscle memory. Use the Scheduled Backups tool where it fits. Use manual SQL Server plans only when you need that control. Synchronize related databases. Protect reporting keys. Test restores before the emergency. Then automate the boring verification checks so admins can spend less time worrying about backups and more time building the fun stuff.

Sources


Discover more from SharePoint Monkey

Subscribe to get the latest posts sent to your email.