Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MySQL Backup Best Practices and Case Study- .ie Continuous Restore Process

MySQL Backup Best Practices and Case Study- .ie Continuous Restore Process

This presentation shows the best practices when taking backups. What needs to be taken into consideration. It also demonstrates how IE Domain Registry has structured its backup process.

Marcelo Altmann

October 09, 2019
Tweet

More Decks by Marcelo Altmann

Other Decks in Technology

Transcript

  1. MySQL Backup Best Practices and Case Study: .IE Continuous Restore

    Process Marcelo Altmann Senior Support Engineer - Percona Mick Begley Technical Service Manager - IE Domain Registry
  2. 3 Agenda • Why we need backups for ? •

    Types of backups • Encryption • Compression • Where to store ? • Restoration • Validation • Binlogs • Retention period
  3. 5 Who is Speaking ? • Marcelo Altmann - Senior

    Support Engineer @ Percona • MySQL DBA @ IE Domain Registry - Certifications • Oracle Certified Professional, MySQL 5.6 Database Administrator • Oracle Certified Professional, MySQL 5.6 Developer • Oracle Certified Professional, MySQL 5 Database Administrator • Oracle Certified Professional, MySQL 5 Developer • Oracle Certified Associate, MySQL 5.0/5.1/5.5 - Oracle ACE Associate - blog.marceloaltmann.com - @altmannmarcelo
  4. 6 Who is Speaking ? • Mick Begley - Technical

    Services Manager @ IE Domain Registry CLG • Head of IT @ First Derivatives • Service Integration Manager @ HP - Certifications • IT and Psychology • Qualified ITIL Service Manager • PMI Certified Project Manager
  5. 8 Why we need backups for ? • Slave provisioning

    • Build Staging / Dev environments • Disaster recovery - Data Corruption - Malicious SQL - Software Bugs - Hardware failure
  6. 9 Replication as backup ? Yes • Master crashes •

    Database physical file corruption • Any physical hardware failure - CPU - RAM - Disk - Network card
  7. 10 Replication as backup ? No • Application Bug •

    Database Hack • Malicious SQL commands
  8. 12 Types of backups - Logical • Structure and data

    are saved as logical structure • CREATE DATABASE / TABLE • INSERT INTO • Can easily be used for selective restore (Only one database/table) • Good when physical file is fragmented / corrupted • Taken while MySQL is running • Slower than physical • Tools: mysqldump, mydumper, mysqlpump
  9. 13 Types of backups - Physical • Raw copy of

    your databases and tables • Can be used for selective restore (Only one database/table) • Fast for either Dump and restore • Can be taken while MySQL is running • Bad for table corruption • Tools: Percona XtraBackup, MySQL Enterprise Backup, snapshots, rsync, cp
  10. 14 Types of backups - Differential or Incremental • Differential

    - Full copy of the database - Each differential backup has all the changes since last full backup • Monday: FULL • Tuesday: Incremental since Monday • Wednesday: Incremental since Monday • Thursday: Incremental since Monday
  11. 15 Types of backups - Differential or Incremental • Incremental

    - Full copy of the database - Each incremental backup has all the changes since last backup • Monday: FULL • Tuesday: Incremental since Monday • Wednesday: Incremental since Tuesday • Thursday: Incremental since Wednesday
  12. 19 Encryption • Keep your backups safe from unwanted access

    • openssl • Percona XtraBackup • --encrypt=ALGORITHM - AES128, AES192, AES256 • --encrypt-key=ENCRYPTION_KEY or --encrypt-key-file=KEYFILE
  13. 20 Encryption • Encrypt - xtrabackup --backup --encrypt=AES256 \ --encrypt-key-file=/data/backups/keyfile

    --target-dir=/data/backups • --encrypt-threads (used with --parallel ) • Decrypt - xtrabackup --decrypt=AES256 \ --encrypt-key-file=/data/backups/keyfile --target-dir=/data/backups
  14. 22 Compression • Save storage space • Require less network

    when streaming • Percona XtraBackup -xtrabackup --backup --compress \ --parallel=4 --compress-threads=4 --target-dir=/data/compressed/ •zip / gzip / bzip
  15. 25 Where to store ? • Where are you going

    to store your backups ? - Same Server ?
  16. 26 Where to store ? • Where are you going

    to store your backups ? - Same Server ?
  17. 27 Where to store ? • Where are you going

    to store your backups ? - Same Server ? - Same Data-Center?
  18. 28 Where to store ? • Where are you going

    to store your backups ? - Same Server ? - Same Data-Center?
  19. 29 Where to store ? • Where are you going

    to store your backups ? - Same Server ? - Same Data-Center? - Same Region ?
  20. 30 Where to store ? • Where are you going

    to store your backups ? - Same Server ? - Same Data-Center? - Same Region ?
  21. 31 Where to store ? • Where are you going

    to store your backups ? - Same Server ? - Same Data-Center? - Same Region ? •What type of disaster my data must survive ?
  22. 34 R E S T O R E ! !

    ! •Most important thing when taking backups •If you don’t test your backup, you simple don’t have a backup. •Restore on a fresh server •Keep track of restoration times •Re-configure as a slave •Test PITR
  23. 36 Validate your data •Run checksum on your data •Ensures

    your backup has all the data and the data is consistent •Pt-table-checksum / mysqldbcompare
  24. 38 Backup your binlogs •Store a safe copy of your

    binlogs •Allows you to do point-in-time recovery even if you lose your master •Mysqlbinlog - mysqlbinlog --read-from-remote-server --host=host_name --raw --stop-never binlog_file •MaxScale Binlog Server
  25. 40 Retention period / audits •How far back in time

    you may need your data ? •How are you going to store it? •Be prepared to restore
  26. Agenda • Who are we? • How is our backup

    setup? • Schedule • Restore times • Questions
  27. Who are the IEDR ? • The IEDR is the

    registry for .ie Internet Domain names and maintains the database of .ie registered Internet names. • Managing since 2000 • Team of 20 • Console, API application across Three Datacenters • 2016 stats (219,858 total registrations, 34,615 new reg, 89% renewal rate) • Today 231,826 Domains
  28. 44 What is DNS? • Domain Name Servers (DNS) are

    the Internet's equivalent of a phone book. They maintain a directory of domain names and translate them to Internet Protocol (IP) addresses. • Makes it easier to move around the Internet (dont have to remember IP addresses) • Database of high importance • Database pushes out zone file across the world • Over 70 nodes
  29. • Local slave and DR site backup slave • Stop

    replication to slave • Dump slave • Restart replication • Verify Dump, Compress Dump, Encrypt Dump • Send to Backup Server How is our backup setup?
  30. • Reset DR site backup slave • Drop all DBs

    • Decrypt Dump from backup, unCompress, Restore Dump • Stop Server • Compress DataDirectory , Encrypt DataDirectory • Send to Backup Server How is our backup setup?
  31. Backup Schedule • Backups run at times outside of zone

    pushes • Backups run at times outside of system batch processing (NRP, Invoicing)
  32. 51 SAVE THE DATE! CALL FOR PAPERS OPENING SOON! www.perconalive.com

    April 23-25, 2018 Santa Clara Convention Center