22
www.fromdual.com 1 / 22 MySQL Backup und Restore DOAG Konferenz 2013 Nürnberg Oli Sennhauser Senior MySQL Consultant, FromDual GmbH [email protected]

MySQL Backup und Restore - FromDual · MySQL) Logisches Backup mysqldump → „menschenlesbar“ Jede Row wird angelangt! Physisches Backup Datei-Kopie LVM Snapshot + Datei-Kopie

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MySQL Backup und Restore - FromDual · MySQL) Logisches Backup mysqldump → „menschenlesbar“ Jede Row wird angelangt! Physisches Backup Datei-Kopie LVM Snapshot + Datei-Kopie

www.fromdual.com

1 / 22

MySQLBackup und Restore

DOAG Konferenz 2013Nürnberg

Oli SennhauserSenior MySQL Consultant, FromDual GmbH

[email protected]

Page 2: MySQL Backup und Restore - FromDual · MySQL) Logisches Backup mysqldump → „menschenlesbar“ Jede Row wird angelangt! Physisches Backup Datei-Kopie LVM Snapshot + Datei-Kopie

www.fromdual.com

2 / 22

Über FromDual GmbH

● 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

Page 3: MySQL Backup und Restore - FromDual · MySQL) Logisches Backup mysqldump → „menschenlesbar“ Jede Row wird angelangt! Physisches Backup Datei-Kopie LVM Snapshot + Datei-Kopie

www.fromdual.com

3 / 22

Unsere Kunden

Page 4: MySQL Backup und Restore - FromDual · MySQL) Logisches Backup mysqldump → „menschenlesbar“ Jede Row wird angelangt! Physisches Backup Datei-Kopie LVM Snapshot + Datei-Kopie

www.fromdual.com

4 / 22

Inhalt

MySQL Backup

➢ Etwas Backup Theorie➢ Cold Backup➢ mysqldump➢ LVM Snapshot➢ Xtrabackup / MEB➢ M/S Replikation➢ Restore➢ Point-in-Time-Recovery

Page 5: MySQL Backup und Restore - FromDual · MySQL) Logisches Backup mysqldump → „menschenlesbar“ Jede Row wird angelangt! Physisches Backup Datei-Kopie LVM Snapshot + Datei-Kopie

www.fromdual.com

5 / 22

Warum Backup?

● Backups ist für Mädchen!● 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?

Page 6: MySQL Backup und Restore - FromDual · MySQL) Logisches Backup mysqldump → „menschenlesbar“ Jede Row wird angelangt! Physisches Backup Datei-Kopie LVM Snapshot + Datei-Kopie

www.fromdual.com

6 / 22

Logisch vs. Physisch

● 2 unterschiedliche Konzepte (unabhängig von MySQL)

● Logisches Backup● mysqldump → „menschenlesbar“

● Jede Row wird angelangt!

● Physisches Backup● Datei-Kopie● LVM Snapshot + Datei-Kopie● Xtrabackup, MySQL Enterprise Backup (MEB)

● → Binärdaten, Block- oder Datei-weises Kopieren

Page 7: MySQL Backup und Restore - FromDual · MySQL) Logisches Backup mysqldump → „menschenlesbar“ Jede Row wird angelangt! Physisches Backup Datei-Kopie LVM Snapshot + Datei-Kopie

www.fromdual.com

7 / 22

Backup-Varianten

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

Page 8: MySQL Backup und Restore - FromDual · MySQL) Logisches Backup mysqldump → „menschenlesbar“ Jede Row wird angelangt! Physisches Backup Datei-Kopie LVM Snapshot + Datei-Kopie

www.fromdual.com

8 / 22

MySQL Cold Backup

● Physisches Datei-Kopieren bei gestoppter DB● Vorgehen:

● Datenbank stoppen● cp ­r $datadir /backup● Datenbank starten

● Eigenschaften:● Sehr einfach, immer konsistent, Service NICHT

verfügbar, Wartungsfenster erforderlich, schnell bei grossen Datenmengen, kann mit LVM kombiniert werden, schneller Restore.

● Demo

Page 9: MySQL Backup und Restore - FromDual · MySQL) Logisches Backup mysqldump → „menschenlesbar“ Jede Row wird angelangt! Physisches Backup Datei-Kopie LVM Snapshot + Datei-Kopie

www.fromdual.com

9 / 22

● 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:● 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

mysqldump

Page 10: MySQL Backup und Restore - FromDual · MySQL) Logisches Backup mysqldump → „menschenlesbar“ Jede Row wird angelangt! Physisches Backup Datei-Kopie LVM Snapshot + Datei-Kopie

www.fromdual.com

10 / 22

mysqldump

cp /etc/my.cnf $BACKUP_DIR/my_$BACKUP_TIMESTAMP.cnf

# for MyISAMmysqldump ­­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 InnoDBmysqldump ­­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

Page 11: MySQL Backup und Restore - FromDual · MySQL) Logisches Backup mysqldump → „menschenlesbar“ Jede Row wird angelangt! Physisches Backup Datei-Kopie LVM Snapshot + Datei-Kopie

www.fromdual.com

11 / 22

● Physisches quasi-hot Backup im laufenden Betrieb● Blockiert ganz kurz fürs Schreiben

● Vorgehen:● FLUSH TABLES WITH READ LOCK;● Start snapshot● UNLOCK TABLES;

● Eigenschaften:● Etwas komplizierter, immer Konsistent, ganz kurze Schreib-

blockierung erforderlich, schnell bei grossen Datenmengen, schneller Restore, InnoDB Crash-Recovery erforderlich.

● Tool:● mylvmbackup (http://www.lenzg.net/mylvmbackup/)

● Demo

LVM Snapshot

Page 12: MySQL Backup und Restore - FromDual · MySQL) Logisches Backup mysqldump → „menschenlesbar“ Jede Row wird angelangt! Physisches Backup Datei-Kopie LVM Snapshot + Datei-Kopie

www.fromdual.com

12 / 22

Xtrabackup / MEB

● Xtrabackup / MySQL Enterprise Backup● Physisches Backup im laufenden Betrieb

● Basiert auf InnoDB Recovery Mechanismus● InnoDB: blockierungsfrei● 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

Page 13: MySQL Backup und Restore - FromDual · MySQL) Logisches Backup mysqldump → „menschenlesbar“ Jede Row wird angelangt! Physisches Backup Datei-Kopie LVM Snapshot + Datei-Kopie

www.fromdual.com

13 / 22

Master/Slave Replikation

● Datenkonsistenz auf Slave?

Backup-Slave

Applikation

Master async

Page 14: MySQL Backup und Restore - FromDual · MySQL) Logisches Backup mysqldump → „menschenlesbar“ Jede Row wird angelangt! Physisches Backup Datei-Kopie LVM Snapshot + Datei-Kopie

www.fromdual.com

14 / 22

Restore

● 2 Varianten (Abhängig vom Backup):

a) Restore von Dump● mysqldump

b) Restore von Datei-Kopien● Cold Backup● LVM Snapshot● Xtrabackup/MEB

Page 15: MySQL Backup und Restore - FromDual · MySQL) Logisches Backup mysqldump → „menschenlesbar“ Jede Row wird angelangt! Physisches Backup Datei-Kopie LVM Snapshot + Datei-Kopie

www.fromdual.com

15 / 22

Restore von Dump

● Backup erstellt mit mysqldump● Vorgehen:

● rm ­rf $datadir● mysql_install_db ­­datadir=/var/lib/mysql● service mysql start● mysql ­u root < /backup/full_dump.sql

● Eigenschaften:● Kann bei grossen Datenmengen SEEEHR lange

dauern... → Testen!

● Demo

Page 16: MySQL Backup und Restore - FromDual · MySQL) Logisches Backup mysqldump → „menschenlesbar“ Jede Row wird angelangt! Physisches Backup Datei-Kopie LVM Snapshot + Datei-Kopie

www.fromdual.com

16 / 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:● Restore-Dauer: proportional zur Datenmenge

● Demo

Page 17: MySQL Backup und Restore - FromDual · MySQL) Logisches Backup mysqldump → „menschenlesbar“ Jede Row wird angelangt! Physisches Backup Datei-Kopie LVM Snapshot + Datei-Kopie

www.fromdual.com

17 / 22

full

bac

kup

02:00

Point-in-Time-Recovery (PITR)

Application ApplicationApplication

mysqld

bin-log.1 bin-log.2 bin-log.n...

log_bin = bin­log

t

pos/time?

14:00

?

Page 18: MySQL Backup und Restore - FromDual · MySQL) Logisches Backup mysqldump → „menschenlesbar“ Jede Row wird angelangt! Physisches Backup Datei-Kopie LVM Snapshot + Datei-Kopie

www.fromdual.com

18 / 22

Tipps und Tricks I

● 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

Page 19: MySQL Backup und Restore - FromDual · MySQL) Logisches Backup mysqldump → „menschenlesbar“ Jede Row wird angelangt! Physisches Backup Datei-Kopie LVM Snapshot + Datei-Kopie

www.fromdual.com

19 / 22

Tipps und Tricks II

● Korrupte Daten werden bei physischen Backups nicht bemerkt:● 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?

Page 20: MySQL Backup und Restore - FromDual · MySQL) Logisches Backup mysqldump → „menschenlesbar“ Jede Row wird angelangt! Physisches Backup Datei-Kopie LVM Snapshot + Datei-Kopie

www.fromdual.com

20 / 22

Backup-Test

Prod QA Test Dev

EntwicklungProduktion

DBA Entwickler

bcknächtlicher

Restore

TestDB1: jaTestDB2: neinDevDBa:  jaDevDBb:  neinDevDBc:  ja

Page 21: MySQL Backup und Restore - FromDual · MySQL) Logisches Backup mysqldump → „menschenlesbar“ Jede Row wird angelangt! Physisches Backup Datei-Kopie LVM Snapshot + Datei-Kopie

www.fromdual.com

21 / 22

Wir suchen noch:

● Erfahrene/r MySQL DBA / Open-Source Enthusiast/in für MySQL Support / remote-DBA

und

● Guter C++ Entwickler/in (mit Affinität zu DBs, MySQL, Replikation und Cluster)

Page 22: MySQL Backup und Restore - FromDual · MySQL) Logisches Backup mysqldump → „menschenlesbar“ Jede Row wird angelangt! Physisches Backup Datei-Kopie LVM Snapshot + Datei-Kopie

www.fromdual.com

22 / 22

Q & A

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

● Schulungwww.fromdual.com/presentations