Skip to content

Backup & Export Schedule

All backups export Azure SQL databases as .bacpac files to blob storage in the sahisddatabackup storage account.

See Azure Automation Runbooks for the full runbook catalog.

Scheduled Exports

Weekly (hisdbackups-weekly container)

RunbookDatabasesRetention
ar-eshars-weekly-db-exportdb-eshars-prod, db-eshars-prod-audit13 days
ar-eshars-weekly-logdb-exportdb-log-prod13 days (cleanup currently commented out)
  • Filenames: {db-name}-{MMddyyyy}.bacpac
  • Blobs older than 13 days are deleted before each export run

Monthly (hisdbackups container)

RunbookDatabasesRetention
ar-eshars-monthly-db-exportdb-eshars-prod, db-eshars-prod-audit, db-log-prodNone (overwrites previous)
  • Filenames: Static names — each run overwrites the previous export
  • Only one copy exists at a time

Fiscal-Year Snapshots (hisd-prod-snapshots-iep container)

RunbookDatabasesRetention
ar-eshars-uat-db-fiscal-updatedb-eshars-prod, db-eshars-prod-audit, db-log-prod7 years
  • Filenames: {db-name}-{hardcoded-date}.bacpacdate must be manually updated per run
  • Blobs older than 7 years are deleted before export
  • Purpose: Long-term compliance/fiscal-year archival

UAT Snapshots (hisd-prod-snapshots-iep container)

RunbookDatabasesRetention
ar-eshars-uat-db-bacpac-updatedb-eshars-uat-data, db-eshars-uat-audit, db-eshars-uat-logNone
  • Filenames: {db-name}-{hardcoded-date}.bacpacdate must be manually updated
  • Purpose: Point-in-time UAT snapshots for IEP milestone preservation

Restore / Import Runbooks

RunbookSourceTargetTier
ar-eshars-db-restore-from-bacpachisd-prod-snapshots-iep/*.bacpacdb-eshars-uat-dataPremium P4
ar-eshars-uat-fiscal-update-testhisd-prod-snapshots-iep/*.bacpacdb-eshars-uat-dataPremium P6 (drops existing UAT first)

Storage Layout

sahisddatabackup/
├── hisdbackups/ # Monthly exports (static filenames)
│ ├── db-eshars-prod.bacpac
│ ├── db-eshars-prod-audit.bacpac
│ └── db-log-prod.bacpac
├── hisdbackups-weekly/ # Weekly exports (date-stamped, 13-day retention)
│ ├── db-eshars-prod-{MMddyyyy}.bacpac
│ ├── db-eshars-prod-audit-{MMddyyyy}.bacpac
│ └── db-log-prod-{MMddyyyy}.bacpac
└── hisd-prod-snapshots-iep/ # Fiscal/UAT snapshots (date-stamped, 7-year retention)
├── db-eshars-prod-{date}.bacpac
├── db-eshars-prod-audit-{date}.bacpac
├── db-log-prod-{date}.bacpac
├── db-eshars-uat-data-{date}.bacpac
├── db-eshars-uat-audit-{date}.bacpac
└── db-eshars-uat-log-{date}.bacpac
esharsdbstorage/
└── db-storage/ # On-demand developer .bacpac files (PII scrub output)
├── db-eshars-backupscrub.bacpac
└── db-eshars-backupscrub-qa-dev.bacpac

Notes

  • All export runbooks use New-AzSqlDatabaseExport (async) and poll until completion
  • Weekly exports use legacy RunAs auth; fiscal exports use Managed Identity
  • The weekly log export retention cleanup is disabled — old blobs accumulate until manually cleaned