MongoDB Backup & Recovery

Introduction to MongoDB Backup & Recovery

Backup and recovery are crucial aspects of MongoDB database administration. This guide covers various backup strategies, recovery procedures, and best practices to ensure data protection and business continuity.

MongoDB Backup & Recovery

MongoDB Backup & Recovery Strategies

Backup Strategies

MongoDB Dump (mongodump)

# Full database backup
mongodump --db myDatabase --out /backup

# Specific collection backup
mongodump --db myDatabase --collection users --out /backup

# Compressed backup
mongodump --db myDatabase --gzip --out /backup

# Backup with authentication
mongodump --uri="mongodb://user:password@localhost:27017/myDatabase" --out /backup

Filesystem Snapshots

  • LVM snapshots
  • Cloud provider snapshots
  • Storage array snapshots
  • Point-in-time recovery
  • Consistent backups

Recovery Procedures

Restore from Backup

# Restore entire database
mongorestore --db myDatabase /backup/myDatabase

# Restore specific collection
mongorestore --db myDatabase --collection users /backup/myDatabase/users.bson

# Restore compressed backup
mongorestore --gzip --db myDatabase /backup/myDatabase

# Restore with authentication
mongorestore --uri="mongodb://user:password@localhost:27017/myDatabase" /backup/myDatabase

Point-in-Time Recovery

  • Oplog-based recovery
  • Timestamp-based recovery
  • Consistent state recovery
  • Partial recovery
  • Cross-cluster recovery

Backup Types

Backup Methods

Full Backup

Complete database backup including all collections and indexes

Incremental Backup

Backup of changes since the last backup

Continuous Backup

Real-time backup using oplog or replication

Backup Storage

  • Local storage
  • Network storage (NFS)
  • Cloud storage (S3, GCS)
  • Backup appliances
  • Offsite storage

Disaster Recovery

Recovery Planning

  • Recovery time objectives (RTO)
  • Recovery point objectives (RPO)
  • Disaster recovery procedures
  • Testing and validation
  • Documentation

High Availability

  • Replica sets
  • Sharding
  • Failover procedures
  • Load balancing
  • Monitoring and alerts

Backup Tools & Automation

MongoDB Tools

  • mongodump/mongorestore
  • MongoDB Atlas Backup
  • MongoDB Ops Manager
  • MongoDB Cloud Manager
  • Custom backup scripts

Automation & Scheduling

# Cron job for daily backup
0 2 * * * mongodump --db myDatabase --out /backup/$(date +\%Y\%m\%d)

# Backup script with rotation
#!/bin/bash
BACKUP_DIR="/backup"
RETENTION_DAYS=7

# Create backup
mongodump --db myDatabase --out $BACKUP_DIR/$(date +\%Y\%m\%d)

# Remove old backups
find $BACKUP_DIR -type d -mtime +$RETENTION_DAYS -exec rm -rf {} \;

Best Practices

Backup Guidelines

  • Regular backup schedule
  • Multiple backup locations
  • Backup verification
  • Encryption of backups
  • Access control

Common Pitfalls

  • Insufficient backup frequency
  • Missing backup verification
  • Poor storage management
  • Inadequate testing
  • Lack of documentation

Next Steps

Now that you understand MongoDB backup and recovery, you can explore: