plam 2015 - evolving backups strategy, devploying pyxbackup
TRANSCRIPT
Everybody ♥ Backups
xbackup.shxtrabackup manager
s9s_backup
holland backup manager
fromdual_brman twindb
Everybody ♥ Backups
xbackup.shxtrabackup manager
s9s_backup
holland backup manager
fromdual_brman twindb
… and more
Where things fall short
● dependencies● portability● for non-dbas● babysitting● validation● remote streaming● restore help● encryption● expanded retention sets● full + incremental (+ PS bitmaps)
So we began with xbackup.sh
● bash shell● had most of the initial required features● difficult to maintain and debug● rewritten to pyxbackup
Optional encryption
xtrabackup
apply-log
compress
encrypt
pyxbackup --compress --compress-with=gzip full|incr
Sending copies to remote
xtrabackup
apply-log
compress
encrypt
stream (scp/nc)
pyxbackup --remote-host --remote-push-only full|incr
Binlog streaming from master
binary log stream pyxbackup
stream (nc/scp)S
M
pyxbackup --binlog-from-master binlog-stream
Limitations
● python <= 2.7● xtrabackup backup only (can be extended for logical dumps, per
database/table restore)
Limitations
● python <= 2.7● xtrabackup backup only (can be extended for logical dumps, per
database/table restore)● local or remote Linux servers only (SSH + Python + xtrabackup)
Future
● xrabackup 2.3● python 3.x● multiple storage locations (round-robin)● point in time recovery (some)
Future
● xrabackup 2.3● python 3.x● multiple storage locations (round-robin)● point in time recovery (some)● restore/test database/table
Future
● xrabackup 2.3● python 3.x● multiple storage locations (round-robin)● point in time recovery (some)● restore/test database/table● logical dumps
Future
● xrabackup 2.3● python 3.x● multiple storage locations (round-robin)● point in time recovery (some)● restore/test database/table● logical dumps● unit tests (ahem)