• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
MySQL Backup
 

MySQL Backup

on

  • 1,034 views

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

Statistics

Views

Total Views
1,034
Views on SlideShare
1,033
Embed Views
1

Actions

Likes
0
Downloads
2
Comments
0

1 Embed 1

http://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    MySQL Backup MySQL Backup Presentation Transcript

    • 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
    • Ü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
    • Unsere Kunden www.fromdual.com 3 / 22
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • Master/Slave Replikation www.fromdual.com Applikation Master ● async BackupSlave Datenkonsistenz auf Slave? 13 / 22
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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