MySQL Backup & Restore

Database backup and restore are critical operations for any production system. MySQL provides several methods to backup and restore data, each with its own advantages and use cases. This guide covers all major backup strategies.

Why Backup is Important

  • Data Loss Prevention: Protection against hardware failure
  • Human Error Recovery: Restore accidentally deleted data
  • Disaster Recovery: Recover from catastrophic events
  • Migration: Move databases between servers
  • Compliance: Meet regulatory requirements

Backup Types

TypeDescriptionWhen to Use
Logical BackupSQL statements (CREATE, INSERT)Small databases, migration, development
Physical BackupRaw database files copyLarge databases, fast recovery
Hot BackupBackup while database is runningProduction systems, 24/7 availability
Cold BackupBackup after shutting down databaseMaintenance windows, consistency
Incremental BackupOnly changed data since last backupLarge databases, frequent backups

Using mysqldump (Logical Backup)

Basic mysqldump Commands

Backup Single Database
Backup All Databases
Backup Specific Tables

Advanced mysqldump Options

Various Backup Options

Restoring from mysqldump

Restore Database
Restore Specific Tables

Physical Backup Methods

Using mysqlhotcopy (MyISAM only)

mysqlhotcopy Examples

File System Copy (Cold Backup)

Cold Backup Procedure

InnoDB Hot Backup

Using Percona XtraBackup

XtraBackup Installation and Use

Incremental Backup with XtraBackup

Incremental Backup Strategy

Binary Log Backup and Point-in-Time Recovery

Enable Binary Logging
Binary Log Backup

Point-in-Time Recovery

Complete Recovery Procedure

Automated Backup Scripts

Simple Backup Script
Advanced Backup Script with Email Notification

Backup Verification and Testing

Backup Verification Script

Cloud Backup Solutions

AWS S3 Backup

Disaster Recovery Planning

Recovery Time Objective (RTO) & Recovery Point Objective (RPO)
  • RTO: Maximum acceptable time to restore service
  • RPO: Maximum acceptable data loss (time since last backup)

Recovery Procedures

Complete Server Recovery

Best Practices

  • Regular Testing: Test restore procedures regularly
  • 3-2-1 Rule: 3 copies, 2 different media, 1 offsite
  • Automation: Automate backup processes
  • Monitoring: Monitor backup success/failure
  • Encryption: Encrypt sensitive backup data
  • Documentation: Document recovery procedures
  • Retention Policy: Define and follow retention policies
  • Performance: Schedule backups during low-traffic periods

Conclusion

A robust backup and recovery strategy is essential for any MySQL deployment. By understanding the different backup methods and implementing appropriate procedures, you can ensure your data remains safe and recoverable in any situation. Remember to regularly test your backups and keep your recovery procedures up to date.