Database Backup Strategy Checklist for System Admins
A database backup strategy must answer more than one question. What is backed up, how often, where it is stored, how long it is kept and how it will be restored all matter.
Core principle
Backups are about recovery. A backup file is useful only if it matches the required recovery point, can be restored and is stored outside the failure zone.
Checklist
- Identify critical databases.
- Choose logical backup, physical backup or both.
- Define backup frequency.
- Define retention period.
- Store backups outside the production server when possible.
- Compress and name backup files consistently.
- Protect backup files from public access.
- Test backup creation.
- Test restore on a non-production database.
- Document recovery point and recovery time expectations.
Reusable lesson
This applies to WordPress, n8n, analytics, dashboards, customer data, content systems and automation state databases.
When to Use This Checklist
Use this checklist when designing database backup strategy for websites, automation tools, apps, APIs or cloud systems.
Required Tools
Database access, backup storage, mysqldump or backup tool, restore test database, offsite storage, retention policy
Before You Start
Do not count a backup strategy as finished until at least one restore test succeeds.
Structured Checklist Steps
- Identify critical databases.
- Select backup type.
- Set frequency.
- Set retention.
- Store offsite.
- Name consistently.
- Protect backup files.
- Test backup creation.
- Test restore.
- Document RPO and RTO.
Verification Steps
- Backup file is created.
- Backup is stored safely.
- Restore test succeeds.
- Retention policy is clear.
- RPO and RTO are documented.
Rollback Plan
If a backup job fails, keep the last good backup, fix the job, then run a new backup and restore test before deleting older copies.
Common Mistakes
- Only storing backups on the same VPS.
- No restore test.
- No retention policy.
- Public backup files under web root.
- Backing up files but forgetting database.
Related Commands
mysqldump -u db_user -p database_name > database_name.sql
gzip database_name.sql
ls -lh database_name.sql.gz
mysql -u db_user -p test_database < database_name.sql
rclone copy database_name.sql.gz remote:bucket/db-backups/