Sie sind auf Seite 1von 26

www.fromdual.

com

MySQL Backup/Recovery
DOAG Regionaltreffen Freiburg/Sdbaden
26. Januar 2016, Freiburg
Oli Sennhauser
Senior MySQL Consultant, FromDual GmbH

oli.sennhauser@fromdual.com
1 / 26

ber FromDual GmbH

www.fromdual.com

Support
Beratung

remote-DBA

Schulung
2 / 26

Inhalt

www.fromdual.com

Backup/Recovery

Einstimmung
Was kann schief gehen?
Randbedingungen
MySQL Backup Methoden
Backup mit mysqldump
Backup mit MySQL Enterprise Backup
Backup mit LVM Snapshot
logischer Restore
physischer Restore
Point-in-Time-Recovery
Restore-Test
Master/Slave-Replikation
Tipps und Tricks
FromDual Backup/Recovery Manager

3 / 26

Einstimmung

www.fromdual.com

Wer von Euch macht Backups?


Alles Mdchen! Backup ist nix fr Cowboys!

Wer von Euch hat HA und brauch daher kein


Backup?

Was ist mit Ups!-Queries?


UPDATEemployeeSETbonus+500
WHEREid+42;
Rowsmatched:3000Changed:3000Warnings:
0
4 / 26

Was kann schief gehen?

Logische Fehler

Ups-Queries

Admin, Entwickler auf Produktion statt Test.

Schlecht getestete Releases

Technische Korruption der DB Blocks

I/O System (Controller, etc.), Memory

Virtualisierung (Host swappen, overcommitten!)

Hardware

schnell kaputt Glck gehabt

Langsam kaputt Sch.....ade!

Rechenzentrum down

www.fromdual.com

Blitzschlag, Erbeben, Stromausfall, Link down = Desaster

Was ist am wahrscheinlichsten?


5 / 26

Randbedingungen

Service Zeiten

Mo Fr: 08:00 17:00, 5x9

Mo So: 00:00 23:59, 7x24

Akzeptierte Wiederherstellungszeit

24h, 1h, 5min, 0?

Datenbankgrsse

3d, 12h, 4h, 1h, ... (MTTR)

Akzeptierter Datenverlust

www.fromdual.com

5 Gbyte, 50 Gbyte, 500 Gbyte, 5 Tbyte?

Hardware

RAM, I/O-System, Netzwerk, Plattenplatz, Tape-Library


6 / 26

MySQL Backup Methoden

Wie macht Ihr Backups?

MySQL: 2 Typen von Backups:

Logische Backups

Physische Backups

www.fromdual.com

MySQL: 3 Backup-Mglichkeiten:

Logisches Backup mit mysqldump


Physisches Backup mit MySQL Enterprise
Backup (MEB)
Physisches Backup mit LVM Snapshots
7 / 26

Backup mit mysqldump

Wer verwendet noch MyISAM?

Logisches Backup mit mysqldump:

www.fromdual.com

#frInnoDB
mysqldumpuser=rootpasswordalldatabases\
singletransaction\
flushprivilegesmasterdata=1flushlogs\
triggersroutinesevents\
hexblob>full_dump.sql

singletransaction: Konsistenz

masterdata: Binary Log Position


8 / 26

Eigenschaften von mysqldump

www.fromdual.com

Jede Row wird angelangt

Ausgabe ist menschenlesbar

InnoDB read/write

MyISAM read only (Lock fr Writes)

Problem: Restore dauert lange bei grossen


Datenmengen oder schwacher Hardware
Faustregel: DB muss in RAM passen

9 / 26

Backup mit MEB

Physisches Backup mit MEB

MEB = MySQL Enterprise Backup

In 2 Phasen:

1. Backup

2. Apply-Log

www.fromdual.com

mysqlbackupuser=rootnotimestamp/tmp/backup
mysqlbackupuser=rootnotimestamp\
applylog/tmp/backup

10 / 26

Eigenschaften von MEB

www.fromdual.com

Kopie der Dateien auf Filesystem-Ebene

Binres Kopieren von Files/Blocks

InnoDB read/write

MyISAM read only (Lock fr Writes)

Grosser Vorteil: Restore dauert in etwa so


lang wie Backup!!!
Problem: Korruptionen werden nicht
entdeckt
11 / 26

LVM Snapshot

www.fromdual.com

Physisches Backup mit LVM Snapshot


DB Befehle und O/S Befehle in selber
Session!
FLUSHTABLESWITHREADLOCK;
\!lvcreatesize=10Gsnapshotname=dbbackup\
/dev/lvm/databases
UNLOCKTABLES;
\!mount/dev/lvm/databases/mnt/dbbackup
\!tarczf/dev/rmt0/mnt/dbbackup#teuer!
\!umount/mnt/dbbackup
\!lvremove/dev/lvm/databases

12 / 26

Eigenschaften von LVM


Snapshots

Kopie der Dateien auf Filesystem-Ebene

Binres Kopieren von Files/Blocks

Kurzer Lock fr Schreiben (< 5 Sekunden)

www.fromdual.com

Grosser Vorteil: Restore dauert in etwa so lang wie


Backup!!!

Einschrnkung: Muss root Rechte haben

Problem: Korruptionen werden nicht entdeckt

mylvmbackup: http://www.lenzg.net/mylvmbackup/
mylvmbackupuser=rootinnodb_recover\
mycnf=/etc/my.cnfvgname=lvmlvname=dbbackup\
backuptype=tar
13 / 26

Restore (mysqldump)

www.fromdual.com

Leere Datenbank neu anlegen:


mysql_install_dbdatadir=/var/lib/mysql\
user=mysql
#MySQL5.7:
mysqldinitializeinsecureuser=mysql\
datadir=/var/lib/mysql

Logisches Backup zurckspielen:


servicemysqlstart
mysqluser=root<full_dump.sql

14 / 26

Restore (physisch)

www.fromdual.com

DB stoppen und Zielverzeichnis leeren

Datenbank zurckspielen:
servicemysqlstop
rmrf/var/lib/mysql
mysqlbackupcopyback/tmp/backup

15 / 26

Point-in-Time-Recovery (PiTR)

www.fromdual.com

Backup 02:00

Ups-Query 14:00, und jetzt?

full backup

pos/time?

02:00

?
14:00

Binary logging (log_bin=binarylog)


16 / 26

Point-in-Time-Recovery

Start-Position ermitteln aus Backup

End-Zeitpunk festlegen

Binary Log applizieren

www.fromdual.com

headn25grepmysql_backup.sql|grepCHANGE
mysqlbinlogstartposition=1234\
stopdatetime='2016011920:13:00'\
binarylog.000225binarylog.000226|\
mysqluser=root

17 / 26

Restore testen

www.fromdual.com

Wer hat schon Restore (freiwillig) getestet?


Empfehlung: Unbedingt regelmssig tun!

Grund:

bung

Gewissheit, dass es funktioniert

Erfahrung, wie lange es dauert

Fehler die wir krzlich gesehen haben:

Tar-File wurde seit 30 Tage von Tape-Library korrumpiert... :-(

Binary-Logs fehlten in Backup (Lcken!) :-(

Events/Statements fehlten in Backup (log_slave_updates


=1)
18 / 26

Restore-Test

www.fromdual.com

Entwicklung

Produktion
Prod

QA

Test

Dev

bck

DBA

nchtlicher
Restore
TestDB1:ja
TestDB2:nein
DevDBa:ja
DevDBb:nein
DevDBc:ja

Entwickler

19 / 26

Master/Slave Replikation

www.fromdual.com

Applikation

Master

async

Failover Slave

Fr Desaster-Failover

Delayed Replication (fr Ups-Queries)


20 / 26

Tipps und Tricks I

www.fromdual.com

Backups regelmssig (tglich?) machen!


Binary Log einschalten (log_bin)
Binary Log Position zu Backup merken (
masterdata)
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
21 / 26

Tipps und Tricks II

Korrupte Daten werden bei physischen


Backups nicht bemerkt:

Virtualisierung: InnoDB Korruptionen?


mysqldumpalldatabases>/dev/null

Struktur Dump von Zeit zu Zeit erstellen.

www.fromdual.com

Ist nicht sooo teuer!


mysqldumpalldatabasesnodata
Ins VCS einchecken?

Backups regelmssig testen!


22 / 26

Backup Recovery Manager

www.fromdual.com

Backup ist kompliziert und mhsam

Einheitliches Interface: fromdual_brman

Backup-Typen:

Backup-Policies:

full, binlog, config, structure, cleanup, schema,


privilege
daily, weekly, monthly, quarterly, yearly, binlog

Backup-Catalog!
23 / 26

Beispiele

www.fromdual.com

mysql_bmantarget=root@127.0.0.1type=full\
policy=weekly
mysql_bmantarget=root@127.0.0.1type=binlog\
policy=daily
mysql_bmantarget=root@127.0.0.1type=config\
policy=monthly
mysql_bmantarget=root@127.0.0.1type=structure\
policy=monthlyarchivearchivedir=/mnt/tape
mysql_bmantarget=root@127.0.0.1type=schema\
schema=+foodmart,+worldperschemapolicy=daily

24 / 26

Outlook FromDual brman

www.fromdual.com

Nchster Release:

Anbindung an:

Tivoli Storage Manager

Symantec/Veritas Netbackup

FromDual Recovery Manager

Automatisiertes Recovery Testing

Einbindung in FromDual Ops Center (GUI)

25 / 26

Q&A

www.fromdual.com

Fragen ?
Diskussion?
Wir haben Zeit fr ein persnliches Gesprch...

FromDual bietet neutral und unabhngig:

Beratung

Remote-DBA

Support fr MySQL, Galera, Percona Server und MariaDB

Schulung

www.fromdual.com/presentations
26 / 26