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)
| Runbook | Databases | Retention |
|---|
ar-eshars-weekly-db-export | db-eshars-prod, db-eshars-prod-audit | 13 days |
ar-eshars-weekly-logdb-export | db-log-prod | 13 days (cleanup currently commented out) |
- Filenames:
{db-name}-{MMddyyyy}.bacpac
- Blobs older than 13 days are deleted before each export run
Monthly (hisdbackups container)
| Runbook | Databases | Retention |
|---|
ar-eshars-monthly-db-export | db-eshars-prod, db-eshars-prod-audit, db-log-prod | None (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)
| Runbook | Databases | Retention |
|---|
ar-eshars-uat-db-fiscal-update | db-eshars-prod, db-eshars-prod-audit, db-log-prod | 7 years |
- Filenames:
{db-name}-{hardcoded-date}.bacpac — date 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)
| Runbook | Databases | Retention |
|---|
ar-eshars-uat-db-bacpac-update | db-eshars-uat-data, db-eshars-uat-audit, db-eshars-uat-log | None |
- Filenames:
{db-name}-{hardcoded-date}.bacpac — date must be manually updated
- Purpose: Point-in-time UAT snapshots for IEP milestone preservation
Restore / Import Runbooks
| Runbook | Source | Target | Tier |
|---|
ar-eshars-db-restore-from-bacpac | hisd-prod-snapshots-iep/*.bacpac | db-eshars-uat-data | Premium P4 |
ar-eshars-uat-fiscal-update-test | hisd-prod-snapshots-iep/*.bacpac | db-eshars-uat-data | Premium P6 (drops existing UAT first) |
Storage Layout
├── hisdbackups/ # Monthly exports (static filenames)
│ ├── db-eshars-prod.bacpac
│ ├── db-eshars-prod-audit.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
└── 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