Show HN: EDB – A framework to make and manage backups of your database
github.com
github.com
Doing one dump per table with chunking (each file has N rows) would help with both speed and disk sizes of backups by allowing S3 or some other program to implement de-duplication between incremental backups.
It also wouldn't hurt to capture the binlog position, if available, to enable point in time recovery.
Have a look at mydumper for an idea of how another tool implemented these:
Here's another idea we implemented alongside a backup system like this. Say you run a backup daily; you can run another script to prune the archives, keeping D most recent daily archives, W most recent weekly archives, M most recent monthly archives, and all yearly archives.
That would suite well as module when used alongside the FTP module. I'll keep it in mind :)
We found out that dumping the database table by table in a parallelized way is much faster than a full database mysqldump.
There's also mysqlpump soon available in mysql 5.7 to replace mysqldump and works in parallel.