Backup strategie voor Magento 2
Een goede backup strategie beschermt tegen dataverlies door hardware failure, hacks, of menselijke fouten.
Wat moet je backuppen?
Database
De MySQL database bevat:
- Producten en categorieën
- Klanten en orders
- Configuratie
- CMS content
Files
app/code: Custom modulesapp/design: Custom themespub/media: Product afbeeldingenapp/etc: Configuratie (env.php)
Wat niet?
vendor/: Kan hersteld worden via composergenerated/: Wordt opnieuw gegenereerdvar/cache/: Cache files
Database backup
Via CLI (mysqldump)
``bash
mysqldump -u username -p database_name > backup_$(date +%Y%m%d).sql
`
Gecomprimeerd
`bash
mysqldump -u username -p database_name | gzip > backup_$(date +%Y%m%d).sql.gz
`
Via Magento CLI
`bash
bin/magento support:backup:db
`
Automatiseren
Cron job voor dagelijkse backup:
`bash
0 3 * * * mysqldump -u user -ppassword dbname | gzip > /backups/db_$(date +\%Y\%m\%d).sql.gz
`
File backup
Media files
`bash
tar -czvf media_backup_$(date +%Y%m%d).tar.gz pub/media/
`
Complete Magento
`bash
tar -czvf magento_backup_$(date +%Y%m%d).tar.gz \
--exclude='var/cache' \
--exclude='var/page_cache' \
--exclude='var/session' \
--exclude='generated' \
/path/to/magento/
`
Rsync voor incrementeel
`bash
rsync -avz --delete /path/to/magento/ /backup/location/
`
Hosting backup services
Managed hosting
Veel hostingpartijen bieden automatische backups:
- Hypernode: Dagelijkse backups, point-in-time recovery
- Nexcess: Automated backups
- AWS: EBS snapshots, RDS backups
Cloud backup services
- AWS S3: Goedkope opslag voor backups
- Google Cloud Storage: Vergelijkbaar
- Backblaze B2: Zeer kostenefficiënt
Backup schema
Aanbevolen rotatie
- Dagelijks: Database + media (7 dagen bewaren)
- Wekelijks: Complete backup (4 weken bewaren)
- Maandelijks: Complete backup (12 maanden bewaren)
3-2-1 regel
- 3 kopieën van data
- 2 verschillende media types
- 1 off-site backup
Backup verificatie
Test restores
Regelmatig testen of backups werkend zijn:
Restore naar test omgeving
Verifieer data integriteit
Test basis functionaliteit
Checksum verificatie
`bash
sha256sum backup.sql.gz > backup.sha256
# Later verifiëren:
sha256sum -c backup.sha256
`
Restore procedures
Database restore
`bash
# Gunzip indien gecomprimeerd
gunzip backup.sql.gz
# Import
mysql -u username -p database_name < backup.sql
`
File restore
`bash
tar -xzvf backup.tar.gz -C /restore/location/
`
Na restore
`bash
bin/magento setup:upgrade
bin/magento cache:flush
bin/magento indexer:reindex
`
Disaster recovery plan
Documenteer
Backup locaties
Restore stappen
Contactpersonen
Verwachte recovery time
Recovery Time Objective (RTO)
Hoe snel moet je online zijn?
- <1 uur: Hot standby nodig
- <4 uur: Snelle restore procedure
- <24 uur: Standaard restore
Recovery Point Objective (RPO)
Hoeveel dataverlies is acceptabel?
- 0: Real-time replicatie
- <1 uur: Frequente backups
- <24 uur: Dagelijkse backups
High Availability opties
Database replicatie
MySQL master-slave setup:
- Master voor writes
- Slave voor reads en backup
- Automatische failover
Multi-server setup
- Load balancer
- Meerdere web servers
- Shared storage voor media
Cloud solutions
- AWS RDS Multi-AZ
- Google Cloud SQL HA
- Azure SQL failover
Magento specifieke overwegingen
Admin sessions
Na restore kunnen admin sessions invalid zijn. Users moeten opnieuw inloggen.
Cron jobs
Check of cron jobs correct draaien na restore.
External services
Test connecties met:
- Payment providers
- Shipping integrations
- ERP/PIM
Search index
Elasticsearch index moet mogelijk opnieuw worden opgebouwd:
`bash
bin/magento indexer:reindex catalogsearch_fulltext
``
Backup tools en extensies
Magento native
Beperkte functionaliteit, niet aanbevolen voor productie.
Server niveau
Meer betrouwbaar:
- Hosting backups
- Server snapshot tools
- Dedicated backup software
Monitoring
Zorg voor alerting als backups falen:
- Email notificaties
- Monitoring dashboard
- Automated testing
Best practices
Automatiseer alles
Handmatige backups worden vergeten. Automatiseer met cron.
Encrypt sensitive data
Backup bestanden bevatten klantdata:
- Encrypt voor opslag
- Beveiligde transfer (SCP, encrypted S3)
Retentie beleid
Bepaal hoe lang backups bewaren:
- Juridische vereisten
- Opslagkosten
- Recovery scenarios
Documentatie
Houd bij:
- Backup locaties en credentials
- Restore procedures
- Laatste test datum
- Contactpersonen