Uploaded on

MySQL has 4 1/2 backup methods. In this presentation we look at those and discuss their advantages and disadvantages...

MySQL has 4 1/2 backup methods. In this presentation we look at those and discuss their advantages and disadvantages...

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
851
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
4
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. www.fromdual.com MySQL Backup und Restore DOAG Konferenz 2013 Nürnberg Oli Sennhauser Senior MySQL Consultant, FromDual GmbH oli.sennhauser@fromdual.com 1 / 22
  • 2. Über FromDual GmbH ● www.fromdual.com FromDual bietet neutral und unabhängig: ● Beratung für MySQL und Galera ● Support für MySQL und Galera ● Remote-DBA Dienstleistungen ● MySQL Schulungen ● Partner der Open Database Alliance (ODBA.org) ● Oracle Silver Partner (OPN) www.fromdual.com 2 / 22
  • 3. Unsere Kunden www.fromdual.com 3 / 22
  • 4. Inhalt www.fromdual.com MySQL Backup ➢ ➢ ➢ ➢ ➢ ➢ ➢ ➢ Etwas Backup Theorie Cold Backup mysqldump LVM Snapshot Xtrabackup / MEB M/S Replikation Restore Point-in-Time-Recovery 4 / 22
  • 5. Warum Backup? ● Backups ist für Mädchen! ● www.fromdual.com Wir haben HA, brauchen daher kein Backup! ● ● Hardware kaputt (ganz schnell tot) Was passiert, wenn: ● ● CPU, RAM, I/O Kontroller langsam stirbt? Eure Entwickler folgendes tun: UPDATE employee SET bonus = 0; WHERE id = 42; ● Wer hat ein Backup-Prozess implementiert? ● Wie macht Ihr Backup? ● Wer testet den Restore Prozess überhaupt/manchmal/regelmässig? 5 / 22
  • 6. Logisch vs. Physisch ● ● 2 unterschiedliche Konzepte (unabhängig von MySQL) Logisches Backup ● mysqldump → „menschenlesbar“ ● ● www.fromdual.com Jede Row wird angelangt! Physisches Backup ● Datei-Kopie ● LVM Snapshot + Datei-Kopie ● Xtrabackup, MySQL Enterprise Backup (MEB) ● → Binärdaten, Block- oder Datei-weises Kopieren 6 / 22
  • 7. Backup-Varianten www.fromdual.com MySQL kennt 4 ½ Backup-Varianten: ● Dateien kopieren bei gestoppter DB (phys.) ● mysqldump im laufenden Betrieb (log.) ● ● ● LVM Snapshot quasi im laufenden Betrieb (phys.) Xtrabackup / MEB im laufenden Betrieb (phys.) Master/Slave Replikation → siehe Variante 1 - 4 7 / 22
  • 8. MySQL Cold Backup www.fromdual.com ● Physisches Datei-Kopieren bei gestoppter DB ● Vorgehen: ● ● ● ● Datenbank starten Eigenschaften: ● ● Datenbank stoppen cp ­r $datadir /backup Sehr einfach, immer konsistent, Service NICHT verfügbar, Wartungsfenster erforderlich, schnell bei grossen Datenmengen, kann mit LVM kombiniert werden, schneller Restore. Demo 8 / 22
  • 9. mysqldump ● Logisches Datenbank-Backup im laufenden Betrieb ● InnoDB: blockierungsfrei ● MyISAM: read-only ● ● Gemisch → MyISAM Vorgehen: ● ● mysqldump ­­all­databases {­­single­transaction |  ­­lock­all­tables} ... > /backup/full_dump.sql Eigenschaften: ● ● www.fromdual.com Sehr einfach, im laufenden Betrieb (bei InnoDB), blockierend für Schreibzugriffe (MyISAM), NICHT geeignet für grosse Datenmengen, langsamer Restore, inkonsistentes Backup möglich Demo 9 / 22
  • 10. mysqldump www.fromdual.com cp /etc/my.cnf $BACKUP_DIR/my_$BACKUP_TIMESTAMP.cnf # for MyISAM mysqldump ­­user=root ­­all­databases ­­flush­privileges ­­lock­all­tables  ­­master­data=1 ­­flush­logs ­­triggers ­­routines ­­events  ­­hex­blob > $BACKUP_DIR/full_dump_$BACKUP_TIMESTAMP.sql # for InnoDB mysqldump ­­user=root ­­all­databases ­­flush­privileges ­­single­transaction  ­­master­data=1 ­­flush­logs ­­triggers ­­routines ­­events  ­­hex­blob > $BACKUP_DIR/full_dump_$BACKUP_TIMESTAMP.sql 10 / 22
  • 11. LVM Snapshot ● Physisches quasi-hot Backup im laufenden Betrieb ● ● ● ● Start snapshot UNLOCK TABLES; Etwas komplizierter, immer Konsistent, ganz kurze Schreibblockierung erforderlich, schnell bei grossen Datenmengen, schneller Restore, InnoDB Crash-Recovery erforderlich. Tool: ● ● FLUSH TABLES WITH READ LOCK; Eigenschaften: ● ● Blockiert ganz kurz fürs Schreiben Vorgehen: ● ● www.fromdual.com mylvmbackup (http://www.lenzg.net/mylvmbackup/) Demo 11 / 22
  • 12. Xtrabackup / MEB ● Xtrabackup / MySQL Enterprise Backup ● www.fromdual.com Physisches Backup im laufenden Betrieb ● ● InnoDB: blockierungsfrei ● ● Basiert auf InnoDB Recovery Mechanismus MyISAM: read-only Vorgehen: ● ● ● innobackupex /backup/ innobackupex ­­apply­log /backup/ Eigenschaften: ● ● Recht einfach, immer Konsistent, im laufenden Betrieb (bei InnoDB), blockierend für Schreibzugriffe (MyISAM), schnell bei grossen Datenmengen, schneller Restore. Demo 12 / 22
  • 13. Master/Slave Replikation www.fromdual.com Applikation Master ● async BackupSlave Datenkonsistenz auf Slave? 13 / 22
  • 14. Restore ● www.fromdual.com 2 Varianten (Abhängig vom Backup): a) Restore von Dump ● mysqldump b) Restore von Datei-Kopien ● Cold Backup ● LVM Snapshot ● Xtrabackup/MEB 14 / 22
  • 15. Restore von Dump ● Backup erstellt mit mysqldump ● www.fromdual.com Vorgehen: ● ● mysql_install_db ­­datadir=/var/lib/mysql ● service mysql start ● ● rm ­rf $datadir mysql ­u root < /backup/full_dump.sql Eigenschaften: ● ● Kann bei grossen Datenmengen SEEEHR lange dauern... → Testen! Demo 15 / 22
  • 16. Restore von phys. Backup ● ● Backup von Cold Backup, LVM Snapshot, Xtrabackup Vorgehen: ● rm ­rf $datadir ● cp ­R /backup/full_backup . ● ● service mysql start Eingenschaften: ● ● www.fromdual.com Restore-Dauer: proportional zur Datenmenge Demo 16 / 22
  • 17. Point-in-Time-Recovery (PITR) www.fromdual.com Application log_bin = bin­log Application Application mysqld bin-log.1 bin-log.2 ... bin-log.n full backup pos/time? 02:00 ? 14:00 t 17 / 22
  • 18. Tipps und Tricks I ● ● ● ● ● ● ● www.fromdual.com Backups regelmässig (täglich?) machen! Binary Log einschalten (log_bin) Binary Log Position zu Backup merken (­­ master­data) Lesen und Schreiben von unterschiedlichen Platten Backups und Binary Logs nicht auf selben Platten wie Daten ablegen. DB Backup mit Filesystem-Backup wegsichern (Timing beachten) Schlechte Erfahrung mit mysqldump direkt auf NFS 18 / 22
  • 19. Tipps und Tricks II ● Korrupte Daten werden bei physischen Backups nicht bemerkt: ● ● www.fromdual.com LVM Snapshot, InnoDB Korruptionen? mysqldump ­­all­databases > /dev/null Strukur Dump von Zeit zu Zeit erstellen. ● ● ● Ist nicht sooo teuer! mysqldump ­­all­databases ­­no­data Ins VCS einchecken? ● Restore: Wir fangen an mit ... einem Backup! ● Weitere Tipps aus Eurem Erfahrungsschatz? 19 / 22
  • 20. Backup-Test www.fromdual.com Entwicklung Produktion Prod QA Test Dev bck DBA nächtlicher Restore TestDB1: ja TestDB2: nein DevDBa:  ja DevDBb:  nein DevDBc:  ja Entwickler 20 / 22
  • 21. Wir suchen noch: ● www.fromdual.com Erfahrene/r MySQL DBA / Open-Source Enthusiast/in für MySQL Support / remoteDBA und ● Guter C++ Entwickler/in (mit Affinität zu DBs, MySQL, Replikation und Cluster) 21 / 22
  • 22. Q&A www.fromdual.com Fragen ? Diskussion? Wir haben Zeit für ein persönliches Gespräch... ● FromDual bietet neutral und unabhängig: ● Beratung ● Remote-DBA ● Support für MySQL, Galera, Percona Server und MariaDB ● Schulung www.fromdual.com/presentations 22 / 22