Applies toSQL Server, PostgreSQL, Oracle, MySQL; managed database services; backup tools such as Veeam, Commvault and Rubrik
#1. Start from RPO and RTO
- RPO (recovery point objective): how much data you can lose. This sets log backup frequency.
- RTO (recovery time objective): how long recovery can take. This sets the restore method (restore from backup, a standby, or snapshots).
| RPO target | Backup approach |
| 24 h | Daily full |
| 1 h | Daily or weekly full + hourly log/WAL backups |
| 5–15 min | Log/WAL backups every 5–15 min, or continuous WAL archiving |
| ~0 | Synchronous replica (HA/DR), with backups as well, not instead |
| RTO target | What makes it achievable |
| Days | Restore from offsite or tape |
| Hours | Restore from disk; database size ÷ measured restore throughput must fit |
| Minutes | Standby replica, or storage snapshots |
#2. Per-engine schedules (Tier 1 example)
| Engine | Full | Differential / incremental | Log |
| SQL Server | Weekly | Daily differential | Every 15 min (FULL recovery model) |
| PostgreSQL | Weekly (pgBackRest full) | Daily (diff or incr) | Continuous WAL archive |
| Oracle | Weekly level 0 (RMAN) | Daily level 1 | Archivelog every 15–30 min, with block change tracking |
| MySQL | Weekly full (XtraBackup / MySQL Enterprise Backup) | Daily incremental | Binlogs copied every 5–15 min |
#3. Retention
- Operational restores: 14–35 days on fast storage.
- Compliance: monthly or yearly copies for as long as policy or regulation requires, on cheaper storage.
- Log and WAL backups must cover the whole period back to the oldest full you keep.
#4. 3-2-1-1-0
- 3 copies, on 2 media types, 1 offsite.
- 1 immutable or air-gapped copy (object lock, a hardened repository, vault lock) against ransomware.
- 0 errors: restores verified.
Backup credentials must not be domain admin, and backup storage must not be deletable by DBAs' everyday accounts.
#5. Restore testing
| Frequency | Test |
| Daily (automated) | Restore the latest backup of a sample database to a test server, then run an integrity check (DBCC CHECKDB, pg_amcheck, RMAN VALIDATE) |
| Quarterly | Point-in-time restore of every Tier 1 database; measure the time against the RTO |
| Yearly | Full site recovery from offsite or immutable copies |
# SQL Server automated restore test with dbatools
Test-DbaLastBackup -SqlInstance sql-prd-01 -Destination sql-test-01 -Database Sales
#6. Monitoring
- Alert on a failed backup, and on a missed backup (no successful log backup in 2× the interval).
- Track the restore throughput (GB/hour) so RTO numbers are based on evidence.
Warning
Replicas are not backups. A DROP TABLE or ransomware encryption replicates to the standby within seconds. Keep point-in-time backups even when you have HA and DR.
Found this useful? Share it with your team: