Database Restore Verification Checklist
Restoring a database is not complete when the import command finishes. You must verify tables, row counts, application login, critical pages, media references, users, permissions and logs.
Core principle
Restore is a business operation, not just a command. The application must work correctly with the restored data.
Checklist
- Create a test database for restore.
- Import the backup into the test database.
- Check table count.
- Check critical table row counts.
- Check database user privileges.
- Point staging application to restored database if safe.
- Test login and critical workflows.
- Check character encoding issues.
- Check application logs after restore.
- Record restore time and problems.
Reusable lesson
This applies to WordPress migrations, disaster recovery drills, staging refreshes, database upgrades and incident recovery.
When to Use This Checklist
Use this checklist after importing a database backup or testing whether a backup can really restore an application.
Required Tools
Database backup, test database, database CLI, staging app, application config, logs, admin access
Before You Start
Do not restore directly into production unless you have a clear rollback path and verified backup source.
Structured Checklist Steps
- Create test database.
- Import backup.
- Check table count.
- Check row counts.
- Check user privileges.
- Connect staging if safe.
- Test login.
- Check encoding.
- Review logs.
- Record restore time.
Verification Steps
- Backup imports successfully.
- Critical tables exist.
- Expected rows are present.
- Application works with restored data.
- Restore process is documented.
Rollback Plan
If restore fails, keep the failed restore environment for analysis, then retry with a different backup or corrected import command without overwriting production.
Common Mistakes
- Assuming import success means application success.
- No staging verification.
- Ignoring character encoding.
- Not checking row counts.
- No restore time record.
Related Commands
mysql -u root -p -e "CREATE DATABASE restore_test;"
mysql -u db_user -p restore_test < backup.sql
mysql -u db_user -p -e "SHOW TABLES FROM restore_test;"
mysql -u db_user -p -e "SELECT COUNT(*) FROM restore_test.wp_posts;"
grep DB_ wp-config.php