Your SlideShare is downloading. ×
MySQL Backup
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

MySQL Backup

958

Published 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...

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
958
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
5
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

×