Join 25,000 others and follow Sean Hull on twitter @hullsean.
Are you serious about backups?
If you’re just using Amazon EBS snapshots, that may not be sufficient. There’s a good chance it won’t protect you against your next data loss.
That’s why I like to have a few different types of backups
Also: 5 more things deadly to scalability
Protect against operator error
mysqldump is a tool every DBA is familiar with. Same as a hotbackup or snapshot you say? Just more labor? Not true.
A dump allows you to restore one table, or one schema. That’s why they’re also known as logical backups. What’s more you can edit the file, remove indexes, change object names, or datatypes. All these can be essential in the screwy and unpredictable event of a real world outage.
Expect the unexpected!
Read: Why devops talent is in short supply
Test those backups regularly
If you haven’t actually tried to restore, you really don’t know if you have everything. Did you backup stored procedures & database code? How about grants? Database events? How about cronjobs? What about the my.cnf file? And your replication configuration?
Yes there are a lot of little pieces, and testing your backups by rebuilding everything is an attempt to poke holes in your plan, and hit issues before d-day!
Related: MySQL interview guide for managers and candidates alike
Replication isn’t a backup
Replication is getting better and better in MySQL. It used to fail regularly. MyiSAM was very unpredictable. But even in the comfortable realm of Innodb, there can still be data drift. If you’re on MySQL 5.0 or 5.1, you should consider performing regular checksums. These test the integrity of data and compare what’s actually in master & slave. Bulletproofing MySQL replication with checksums.
Read: Why high availability is so very hard to deliver
Have you considered security around your backup files?
While you’re thinking about backups, make sure the files themselves are secure. Remember they contain your crown jewels. Hopefully individual data that’s sensitive is encrypted, but still you should secure their final resting place as well.
If you’re using S3, consider encrypting the file before shipping it up to the bucket.
Read this: Why a four letter word divides dev and ops