35
www.fromdual.com 1 DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser Senior MySQL Consultant, FromDual GmbH [email protected] MySQL Replikation, Scale-Out, Master- Master Replikation, Backup

DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser · 3 Über FromDual GmbH Wir bieten an: Neutrale und Hersteller unabhängige Beratung für MySQL Support für MySQL (7

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser · 3 Über FromDual GmbH Wir bieten an: Neutrale und Hersteller unabhängige Beratung für MySQL Support für MySQL (7

www.fromdual.com 1

DOAG Regioaltreffen, München23. März 2011

Oli SennhauserSenior MySQL Consultant, FromDual GmbH

[email protected]

MySQL Replikation, Scale-Out, Master-Master Replikation, Backup

Page 2: DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser · 3 Über FromDual GmbH Wir bieten an: Neutrale und Hersteller unabhängige Beratung für MySQL Support für MySQL (7

www.fromdual.com 2

Inhalt

HA Solutions

➢ Read scale-out➢ Replication set-up for HA➢ Active/passive fail-over➢ MySQL Cluster➢ Replication Cluster➢ Storage-Engine-Replication

MySQL Replikation

➢ Scale-Out➢ MySQL Replikation➢ Master-Master Replikation➢ Binary Log Formate➢ Semi-Synchrone Replikation➢ Backup Methoden➢ Restore➢ SE Replikation mit PBXT

Page 3: DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser · 3 Über FromDual GmbH Wir bieten an: Neutrale und Hersteller unabhängige Beratung für MySQL Support für MySQL (7

www.fromdual.com 3

Über FromDual GmbH

● Wir bieten an:● Neutrale und Hersteller unabhängige Beratung für MySQL● Support für MySQL (7 x 24)● Remote-DBA / MySQL Betrieb (wir betreiben Ihre MySQL DB!)● Schulung und Workshops (DBA, Performance Tuning, Scale-

Out, High Availability, MySQL Cluster)

● Wir sind:● Consulting Partner der Open Database Alliance (ODBA.org)● Oracle Silber Partner (OPN)

http://www.fromdual.com

Page 4: DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser · 3 Über FromDual GmbH Wir bieten an: Neutrale und Hersteller unabhängige Beratung für MySQL Support für MySQL (7

www.fromdual.com 4

Zuerst gab's da mal ein Problem:

Scale-Up

Scale-Out● Web-Applikationen typischerweise:

r >> w

● Kosten● MySQL Design● Physikalische Flaschenhälse● „Relaxation of Constraints“

Page 5: DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser · 3 Über FromDual GmbH Wir bieten an: Neutrale und Hersteller unabhängige Beratung für MySQL Support für MySQL (7

www.fromdual.com 5

Der MySQL Scale-Out Ansatz

Applikation

Master

Slave Backup

Load balancer

Slave 1

Slave Reporting

Slave 2

Slave 3

rtwro

...

Web-Applikationen typischerweise:r >> w

Page 6: DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser · 3 Über FromDual GmbH Wir bieten an: Neutrale und Hersteller unabhängige Beratung für MySQL Support für MySQL (7

www.fromdual.com 6

Master – Slave Replikation

Application

Master

...

binlog dumpthread

Slave

bin-log.m bin-log.n

binarylog

writerthread

bin-log.index

relay-log.m relay-log.n...

IO_thread

SQL_thread

master.info

relay-log.info

Async!

Page 7: DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser · 3 Über FromDual GmbH Wir bieten an: Neutrale und Hersteller unabhängige Beratung für MySQL Support für MySQL (7

www.fromdual.com 7

Erstellen eines Masters

● Binary Log einschalten und Server ID setzen (erfordert Neutstart):

# my.cnf[mysqld]log_bin   = binary_logserver_id = 42

● User mit REPLICATION SLAVE Privileg anlegen:

CREATE USER replication@'%' IDENTIFIED BY 'secret';GRANT REPLICATION SLAVE ON *.* TO replication@'%';

● Konsistentes Backup vom Master erstellen:

mysqldump ­­all­databases {­­single­transaction | ­­lock­all­tables} ­­master­data > full_dump.sql

● MySQL Dokumentation: How to Set Up Replication

http://dev.mysql.com/doc/refman/5.5/en/replication-howto.html

Page 8: DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser · 3 Über FromDual GmbH Wir bieten an: Neutrale und Hersteller unabhängige Beratung für MySQL Support für MySQL (7

www.fromdual.com 8

Erstellen eines Slaves

● Server_id in my.cnf setzen

● Dem Slave zeigen, wo sein Master sitzt:● CHANGE MASTER TO master_host='masterserver', master_port=3306, master_user='replication', master_password='secret'

● Einspielen des konsistenten Backups vom Master:

mysql ­u root < full_dump.sql

● Überprüfen ob auf dem Slave alles i.O. ist:

SHOW SLAVE STATUS\G

● Slave starten:

START SLAVE;

Page 9: DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser · 3 Über FromDual GmbH Wir bieten an: Neutrale und Hersteller unabhängige Beratung für MySQL Support für MySQL (7

www.fromdual.com 9

Für was kann man Slaves alles brauchen?

Applikation

Master

Slave Backup

Load balancer

Slave 1

Slave Reporting

Slave 2

Slave 3

rtwro

...

Web-Applikationen typischerweise:r >> w

Page 10: DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser · 3 Über FromDual GmbH Wir bieten an: Neutrale und Hersteller unabhängige Beratung für MySQL Support für MySQL (7

www.fromdual.com 10

Massives Scale-Out

● Jetzt können sie auch erahnen wozu die BLACKHOLE SE gebraucht wird...

M

S S S SSS ......

S S S SSS ...... S S

S S S SSS ...... S S S S

S S S SSS ...... S S S S S S

5 s

Page 11: DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser · 3 Über FromDual GmbH Wir bieten an: Neutrale und Hersteller unabhängige Beratung für MySQL Support für MySQL (7

www.fromdual.com 11

Tool zur Verwaltung solcher Set-up's● Problem: Wenn Master kaputt geht, müssen

alle Slaves neu gebaut werden...● Aber es gibt Tricks:● Tool von Yandex.ru (Petya Kohts):

● mmmf, multi-master mysql failover● http://www.nigilist.ru/nit/mmmf/● http://cpan.uwinnipeg.ca/~kohts/mmmf

Page 12: DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser · 3 Über FromDual GmbH Wir bieten an: Neutrale und Hersteller unabhängige Beratung für MySQL Support für MySQL (7

www.fromdual.com 12

Master – Master Replikation

Applikation

M2

Slave Backup

Slave 1

Slave 2

Slave 3

M1

VIP

● Vorsicht beim Schreiben auf beide Master

● Man erhält so NICHT mehr I/O-Durchsatz!

Page 13: DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser · 3 Über FromDual GmbH Wir bieten an: Neutrale und Hersteller unabhängige Beratung für MySQL Support für MySQL (7

www.fromdual.com 13

Tool zur Verwaltung solcher Set-up's● Ähnliches Problem wie bei Master-Slave

Replikation mit zusätzlicher Komplexität durch zirkuläre Replikation

● Keine Konflikt-Detektion/Auflösung!● Achtung: Wir sind asynchron!● Tool:

● Multi-Master Replication Manager for MySQL● http://mysql-mmm.org/● https://launchpad.net/mysql-mmm

Page 14: DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser · 3 Über FromDual GmbH Wir bieten an: Neutrale und Hersteller unabhängige Beratung für MySQL Support für MySQL (7

www.fromdual.com 14

Binary Log Formate

● Bis MySQL 5.0 nur Statement Based Replikation (SBR)

+ Weniger Traffic

- Non-determistic Queries!

- Mehr Locking (grössere Locks)

# at 786#110321 20:55:40 server id 35154  end_log_pos 814       IntvarSET INSERT_ID=3/*!*/;# at 814#110321 20:55:40 server id 35154  end_log_pos 944       Query   thread_id=3     exec_time=0     error_code=0SET TIMESTAMP=1300737340/*!*/;INSERT INTO test VALUES (NULL, 'Statement based replikation', NULL)

Page 15: DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser · 3 Über FromDual GmbH Wir bieten an: Neutrale und Hersteller unabhängige Beratung für MySQL Support für MySQL (7

www.fromdual.com 15

Binary Log Formate

● Ab MySQL 5.1 auch Row Based Replication (RBR)

+ All Änderungen können nun repliziert werden.

+ Weniger Locking / manchmal schneller

- Binary Log ist weniger transparent / mehr Traffic● Mixed (SBR default, wechselt auf RBR b. Bed.)

# at 844#110321 20:57:36 server id 35154  end_log_pos 912       Query   thread_id=2     exec_time=0     error_code=0SET TIMESTAMP=1300737456/*!*/;BEGIN/*!*/;# at 912# at 959#110321 20:57:36 server id 35154  end_log_pos 959       Table_map: `test`.`test` mapped to number 15#110321 20:57:36 server id 35154  end_log_pos 1019      Write_rows: table id 15 flags: STMT_END_FBINLOG 'sK2HTRNSiQAALwAAAL8DAAAAAA8AAAAAAAEABHRlc3QABHRlc3QAAwMPBwJAAAI=sK2HTRdSiQAAPAAAAPsDAAAAAA8AAAAAAAEAA//4BwAAABVSb3cgYmFzZWQgcmVwbGlrYXRpb26wRydN'/*!*/;

mysqlbinlog ­­base64­output=decode­rows ­­verbose bin­log.000002

Page 16: DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser · 3 Über FromDual GmbH Wir bieten an: Neutrale und Hersteller unabhängige Beratung für MySQL Support für MySQL (7

www.fromdual.com 16

Semi-Synchrone Replikation

Master

...

binlog dumpthread

Slave

bin-log.m bin-log.n

binarylog

writerthread

relay-log.m relay-log.n...

IO_thread

SQL_thread

● Bis 5.1 nur asynchrone Replikation!● Ab 5.5 auch semi-synchrone Replikation:

Page 17: DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser · 3 Über FromDual GmbH Wir bieten an: Neutrale und Hersteller unabhängige Beratung für MySQL Support für MySQL (7

www.fromdual.com 17

Backup Methoden

Page 18: DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser · 3 Über FromDual GmbH Wir bieten an: Neutrale und Hersteller unabhängige Beratung für MySQL Support für MySQL (7

www.fromdual.com 18

Backup Methoden

● mysqldump

● Filesystem Kopie / mysqlhotcopy● Snapshot mit LVM / btrfs● InnoDB Hot Backup (ibbackup/xtrabackup)● Backup Replikation Slave

Page 19: DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser · 3 Über FromDual GmbH Wir bieten an: Neutrale und Hersteller unabhängige Beratung für MySQL Support für MySQL (7

www.fromdual.com 19

mysqldump

● Charakteristik● Logisches Backup, hot/on-line, lokal oder

remote, konsistent

● Vorteile● Einfach, lokal oder remote, Standard-Backup für

MySQL, konsistent, Strukturdump möglich

● Nachteile● Kann falsch gemacht werden, blockiert MyISAM

Tabellen fürs Schreiben, nicht geeignet für sehr grosse Datenmengen, Restore-Zeiten!

Page 20: DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser · 3 Über FromDual GmbH Wir bieten an: Neutrale und Hersteller unabhängige Beratung für MySQL Support für MySQL (7

www.fromdual.com 20

Filesystem Kopie / mysqlhotcopy● Charakteristik

● Physisches Backup, hot, local

● Vorteile● Schneller Restore, konsistent

● Nachteile● Nur bedingt für InnoDB geeignet, blockiert

Tabellen für Schreibzugriffe.

Page 21: DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser · 3 Über FromDual GmbH Wir bieten an: Neutrale und Hersteller unabhängige Beratung für MySQL Support für MySQL (7

www.fromdual.com 21

Snapshot mit LVM / btrfs

● Charakteristik● Physisches Backup, hot, lokal

● Vorteile● Sehr schnelle Backup Methode, ziemlich

schnelles Restore, konsistent

● Nachteile● Benötigt root Rechte, etwas komplizierter und

Hardware intensiver, möglicherweise gefährlich mit InnoDB?

Page 22: DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser · 3 Über FromDual GmbH Wir bieten an: Neutrale und Hersteller unabhängige Beratung für MySQL Support für MySQL (7

www.fromdual.com 22

Wie wird ein LVM Snapshopt Backup gemacht?● Alle DB files müssen auf dem selben Logical Volume

liegen (LV = Partition)● Locken der Datenbank● Erstellen eines Snapshots des Logical Volumes● Unlocken der Datenbank● Mounten des Snapshot Logical Volumes● InnoDB Recovery testen● Backup (tar, compress, tape) der Datenbank Files● Löschen des Snapshot Logical Volumes

→ Etwas kompliziert: mylvmsnapshot

Page 23: DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser · 3 Über FromDual GmbH Wir bieten an: Neutrale und Hersteller unabhängige Beratung für MySQL Support für MySQL (7

www.fromdual.com 23

Wie funktionieren LVM Snapshots?

LVM device

copy-on-write

LVM snap-shot device

Page 24: DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser · 3 Über FromDual GmbH Wir bieten an: Neutrale und Hersteller unabhängige Beratung für MySQL Support für MySQL (7

www.fromdual.com 24

InnoDB Hot backup (ibbackup, xtrabackup)● Charakteristik

● Physisches Backup, hot/on-line, lokal, konsistent, inkremental

● Vorteile● Schnelles Backup/Restore für InnoDB

● Nachteile● Löst die MyISAM Probleme nicht

Page 25: DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser · 3 Über FromDual GmbH Wir bieten an: Neutrale und Hersteller unabhängige Beratung für MySQL Support für MySQL (7

www.fromdual.com 25

Backup mit OEB/XtraBackup

● Volles Backup erstellen:

xtrabackup ­­backup ­­target­dir=...

● Prepare (~recovery):● xtrabackup ­­prepare ­­target­dir=...

● Restore?● Einfach MySQL auf den Files wieder starten...

Page 26: DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser · 3 Über FromDual GmbH Wir bieten an: Neutrale und Hersteller unabhängige Beratung für MySQL Support für MySQL (7

www.fromdual.com 26

Backup Replikation Slave

● Charakteristik● Logisches oder physisches backup, hot/on-line, konsitent

● Vorteile● Betrifft Master überhaupt nicht. „Beste“ Methode aus Sicht

des Masters.

● Nachteile● Braucht zusätzliche Hardware (oder zumindest Ressourcen)● Sicherstellen, dass Slave nicht driftet.● Achtung: Wir erstellen ein Backup auf dem Slave: != Master

Page 27: DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser · 3 Über FromDual GmbH Wir bieten an: Neutrale und Hersteller unabhängige Beratung für MySQL Support für MySQL (7

www.fromdual.com 27

Restore / Recovery

Page 28: DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser · 3 Über FromDual GmbH Wir bieten an: Neutrale und Hersteller unabhängige Beratung für MySQL Support für MySQL (7

www.fromdual.com 28

Restore / Recovery

● Restore / Recovery besteht aus bis zu 3 verschiedenen Schritten:● Restore der Daten oder der Tabellen oder den

Files● Auto-recovery der transaktionalen SE (InnoDB,

PBXT, NDB)● Point-in-Time-Recovery (PITR)

● Schritt 1 und 2 sind klar?● Was ist PITR?

Page 29: DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser · 3 Über FromDual GmbH Wir bieten an: Neutrale und Hersteller unabhängige Beratung für MySQL Support für MySQL (7

www.fromdual.com 29

Point-in-Time-Recovery (PITR)

Application ApplicationApplication

mysqld

binarylog

writerthread

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

log_bin = on

t

full

bac

kup

pos/time?

Page 30: DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser · 3 Über FromDual GmbH Wir bieten an: Neutrale und Hersteller unabhängige Beratung für MySQL Support für MySQL (7

www.fromdual.com 30

Warum ein Restore getested werden sollte?● Restore können sehr sehr lange dauern.........

● Überprüfen Sie Ihre MTTR!

● Warum dauert der Restore eines logischen Backups so lange?

→ Restore Tabelle, Create Index → random I/O● So lange Ihr Index in den Cache/Buffer passt ist es

OK, aber wehe wenn nicht...!● Man kann da etwas drum herum schummeln mit Fast

Index Creation im InnoDB Plug-in oder MySQL 5.5...

Page 31: DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser · 3 Über FromDual GmbH Wir bieten an: Neutrale und Hersteller unabhängige Beratung für MySQL Support für MySQL (7

www.fromdual.com 31

Justify your restore

Prod Acc Test Dev

DevelopmentProduction

DBA Developer

bcknightly restore

Page 32: DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser · 3 Über FromDual GmbH Wir bieten an: Neutrale und Hersteller unabhängige Beratung für MySQL Support für MySQL (7

www.fromdual.com 32

Storage Engine Replikation mit PBXT● MySQL Replikation ist nicht sehr schnell● Man kann die Replikation leicht falsch

aufsetzen / Fehler machen.● Warum so kompliziert über mind. 3 Threads

und 2 Files?

→ Die PBXT SE v2.0 implementiert Replikation auf Storage Engine Ebene:

Page 33: DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser · 3 Über FromDual GmbH Wir bieten an: Neutrale und Hersteller unabhängige Beratung für MySQL Support für MySQL (7

www.fromdual.com 33

Overhead der MySQL Replikation

Page 34: DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser · 3 Über FromDual GmbH Wir bieten an: Neutrale und Hersteller unabhängige Beratung für MySQL Support für MySQL (7

www.fromdual.com 34

Architektur der PBXT Replikation

Page 35: DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser · 3 Über FromDual GmbH Wir bieten an: Neutrale und Hersteller unabhängige Beratung für MySQL Support für MySQL (7

www.fromdual.com 35

Overhead der PBXT Replikation