SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Downloaden Sie, um offline zu lesen
MySQL Replikation, Scale-Out, Master-
Master Replikation, Backup


      DOAG Regioaltreffen, München
            23. März 2011

                Oli Sennhauser
         Senior MySQL Consultant, FromDual GmbH

          oli.sennhauser@fromdual.com



                      www.fromdual.com            1
Inhalt
  MySQL Replikation
  HA Solutions
  ➢
      Scale-Out
      Read scale-out
  ➢
      MySQL Replikation
      Replication set-up for HA
  ➢
      Master-Master fail-over
      Active/passive Replikation
  ➢
      Binary Cluster
      MySQLLog Formate
  ➢
      Semi-Synchrone Replikation
      Replication Cluster
  ➢
      Backup Methoden
      Storage-Engine-Replication
  ➢
      Restore
  ➢
      SE Replikation mit PBXT




                                   www.fromdual.com   2
Ü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

                               www.fromdual.com                     3
Zuerst gab's da mal ein Problem:
  Kosten
●

● MySQL Design
                                     Scale-Up
● Physikalische Flaschenhälse

● „Relaxation of Constraints“




●   Web-Applikationen typischerweise:
     r >> w
                                       Scale-Out

                                www.fromdual.com   4
Der MySQL Scale-Out Ansatz

                        Applikation
                  ro
                                 rtw
                                              Slave Reporting
                            Master

                                                  Slave Backup

     Slave 1      Slave 2         Slave 3
                                            ...


               Load balancer

                               Web-Applikationen typischerweise:
                                 r >> w
                       www.fromdual.com                            5
Master – Slave Replikation

                                     binlog dump
                                        thread          master.info
                                                                                IO_
          Application                                                         thread
                                           Async!
                                                                                    relay-log.info

binary                              bin-log.index
  log       Master                                    Slave                             SQL_
 writer                                                                                thread
thread

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




                                 www.fromdual.com                                               6
Erstellen eines Masters
●   Binary Log einschalten und Server ID setzen (erfordert Neutstart):
    # my.cnf
    [mysqld]
    log_bin   = binary_log
    server_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
                                www.fromdual.com                      7
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 STATUSG
●   Slave starten:
    START SLAVE;
                           www.fromdual.com             8
Für was kann man Slaves alles
brauchen?
                        Applikation
                  ro
                                 rtw
                                              Slave Reporting
                            Master

                                                  Slave Backup

     Slave 1      Slave 2         Slave 3
                                            ...


               Load balancer

                               Web-Applikationen typischerweise:
                                 r >> w
                       www.fromdual.com                            9
Massives Scale-Out
                                          M                     5s


                      ...   S   S     S       S        S   S   ...


                ...   S     S   S     S       S        S   S   S     ...


          ...   S     S     S   S     S       S        S   S   S     S     ...


...       S     S     S     S   S     S       S        S   S   S     S     S      ...



      ●   Jetzt können sie auch erahnen wozu die
          BLACKHOLE SE gebraucht wird...
                                    www.fromdual.com                             10
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



                         www.fromdual.com      11
Master – Master Replikation
                               Applikation


                                  VIP



                          M1                 M2




                Slave 1          Slave 2          Slave 3   Slave Backup

  ●   Vorsicht beim Schreiben auf beide Master
  ●   Man erhält so NICHT mehr I/O-Durchsatz!
                                  www.fromdual.com                         12
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
                        www.fromdual.com             13
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       Intvar
    SET 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=0
    SET TIMESTAMP=1300737340/*!*/;
    INSERT INTO test VALUES (NULL, 'Statement based replikation', NULL)




                                                 www.fromdual.com                                                  14
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=0
    SET 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_F
    BINLOG 'sK2HTRNSiQAALwAAAL8DAAAAAA8AAAAAAAEABHRlc3QABHRlc3QAAwMPBwJAAAI=
    sK2HTRdSiQAAPAAAAPsDAAAAAA8AAAAAAAEAA//4BwAAABVSb3cgYmFzZWQgcmVwbGlrYXRpb26w
    RydN'/*!*/;

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


                                                 www.fromdual.com                                                  15
Semi-Synchrone Replikation
●   Bis 5.1 nur asynchrone Replikation!
●   Ab 5.5 auch semi-synchrone Replikation:
                                  binlog dump
                                     thread                                IO_
                                                                         thread



binary
  log       Master                                 Slave                         SQL_
 writer                                                                         thread
thread

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




                              www.fromdual.com                                          16
Backup Methoden




    www.fromdual.com   17
Backup Methoden
●   mysqldump
●   Filesystem Kopie / mysqlhotcopy
●   Snapshot mit LVM / btrfs
●   InnoDB Hot Backup (ibbackup/xtrabackup)
●   Backup Replikation Slave




                    www.fromdual.com          18
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!
                         www.fromdual.com              19
Filesystem Kopie /
mysqlhotcopy
●   Charakteristik
    ●   Physisches Backup, hot, local
●   Vorteile
    ●   Schneller Restore, konsistent
●   Nachteile
    ●   Nur bedingt für InnoDB geeignet, blockiert
        Tabellen für Schreibzugriffe.



                         www.fromdual.com            20
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?

                        www.fromdual.com             21
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
                        www.fromdual.com                 22
Wie funktionieren LVM
Snapshots?




   LVM device                      LVM snap-
                                   shot device



                copy-on-write

                www.fromdual.com                 23
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



                         www.fromdual.com        24
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...


                         www.fromdual.com               25
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



                               www.fromdual.com                      26
Restore / Recovery




     www.fromdual.com   27
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?
                        www.fromdual.com                28
Point-in-Time-Recovery (PITR)
      Application      Application       Application
                                                              binary
                                                                log
                                                               writer
 log_bin = on           mysqld                                thread



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


 pos/time?
         full backup




                                                                               t
                               www.fromdual.com                                    29
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...


                           www.fromdual.com                   30
Justify your restore
         Production                          Development


   Prod          Acc                       Test         Dev




   bck
                       nightly restore
           DBA                                    Developer



                        www.fromdual.com                      31
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:

                     www.fromdual.com           32
Overhead der MySQL Replikation




            www.fromdual.com     33
Architektur der PBXT Replikation




             www.fromdual.com      34
Overhead der PBXT Replikation




             www.fromdual.com   35

Weitere ähnliche Inhalte

Was ist angesagt?

MySQL Backup/Recovery
MySQL Backup/RecoveryMySQL Backup/Recovery
MySQL Backup/RecoveryFromDual GmbH
 
MySQL-Server im Teamwork - Replikation und Cluster
MySQL-Server im Teamwork - Replikation und ClusterMySQL-Server im Teamwork - Replikation und Cluster
MySQL-Server im Teamwork - Replikation und ClusterFromDual GmbH
 
MySQL - New Features 5.6
MySQL - New Features 5.6MySQL - New Features 5.6
MySQL - New Features 5.6FromDual GmbH
 
MySQL Beispiele aus der Praxis - Wie setzen Kunden MySQL ein?
MySQL Beispiele aus der Praxis - Wie setzen Kunden MySQL ein?MySQL Beispiele aus der Praxis - Wie setzen Kunden MySQL ein?
MySQL Beispiele aus der Praxis - Wie setzen Kunden MySQL ein?FromDual GmbH
 
MySQL Hochverfügbarkeitslösungen
MySQL HochverfügbarkeitslösungenMySQL Hochverfügbarkeitslösungen
MySQL HochverfügbarkeitslösungenLenz Grimmer
 
MySQL für Oracle DBA's
MySQL für Oracle DBA'sMySQL für Oracle DBA's
MySQL für Oracle DBA'sFromDual GmbH
 
MySQL Performance Tuning für Oracle-DBA's
MySQL Performance Tuning für Oracle-DBA'sMySQL Performance Tuning für Oracle-DBA's
MySQL Performance Tuning für Oracle-DBA'sFromDual GmbH
 
Internet Briefing 2010: Performance Tuning & Scale-Out mit MySQL
Internet Briefing 2010: Performance Tuning & Scale-Out mit MySQLInternet Briefing 2010: Performance Tuning & Scale-Out mit MySQL
Internet Briefing 2010: Performance Tuning & Scale-Out mit MySQLFromDual GmbH
 
Der Datenbank-Backup ist gemacht - was nun?
Der Datenbank-Backup ist gemacht - was nun?Der Datenbank-Backup ist gemacht - was nun?
Der Datenbank-Backup ist gemacht - was nun?FromDual GmbH
 
Weltweite Produktionsdatenverwaltung mit MySQL-Replikation
Weltweite Produktionsdatenverwaltung mit MySQL-ReplikationWeltweite Produktionsdatenverwaltung mit MySQL-Replikation
Weltweite Produktionsdatenverwaltung mit MySQL-ReplikationFromDual GmbH
 
MySQL Cluster with Galera Cluster for MySQL
MySQL Cluster with Galera Cluster for MySQLMySQL Cluster with Galera Cluster for MySQL
MySQL Cluster with Galera Cluster for MySQLFromDual GmbH
 
MySQL Hochverfügbarkeitslösungen
MySQL HochverfügbarkeitslösungenMySQL Hochverfügbarkeitslösungen
MySQL HochverfügbarkeitslösungenLenz Grimmer
 
DOAG: NoSQL with MySQL
DOAG: NoSQL with MySQLDOAG: NoSQL with MySQL
DOAG: NoSQL with MySQLFromDual GmbH
 
MySQL Performance Tuning für Entwickler
MySQL Performance Tuning für EntwicklerMySQL Performance Tuning für Entwickler
MySQL Performance Tuning für EntwicklerFromDual GmbH
 
MySQL High Availability Solutions
MySQL High Availability SolutionsMySQL High Availability Solutions
MySQL High Availability SolutionsFromDual GmbH
 
Nagios Conference 2007 | Vmware Monitoring by Ingo Latschner
Nagios Conference 2007 | Vmware Monitoring by Ingo LatschnerNagios Conference 2007 | Vmware Monitoring by Ingo Latschner
Nagios Conference 2007 | Vmware Monitoring by Ingo LatschnerNETWAYS
 
MySQL HA and Security
MySQL HA and SecurityMySQL HA and Security
MySQL HA and SecurityFromDual GmbH
 
Tanuki service wrapper_101
Tanuki service wrapper_101Tanuki service wrapper_101
Tanuki service wrapper_101inovex GmbH
 

Was ist angesagt? (20)

MySQL Backup/Recovery
MySQL Backup/RecoveryMySQL Backup/Recovery
MySQL Backup/Recovery
 
MySQL-Server im Teamwork - Replikation und Cluster
MySQL-Server im Teamwork - Replikation und ClusterMySQL-Server im Teamwork - Replikation und Cluster
MySQL-Server im Teamwork - Replikation und Cluster
 
NoSQL with MySQL
NoSQL with MySQLNoSQL with MySQL
NoSQL with MySQL
 
MySQL - New Features 5.6
MySQL - New Features 5.6MySQL - New Features 5.6
MySQL - New Features 5.6
 
MySQL Beispiele aus der Praxis - Wie setzen Kunden MySQL ein?
MySQL Beispiele aus der Praxis - Wie setzen Kunden MySQL ein?MySQL Beispiele aus der Praxis - Wie setzen Kunden MySQL ein?
MySQL Beispiele aus der Praxis - Wie setzen Kunden MySQL ein?
 
MySQL Hochverfügbarkeitslösungen
MySQL HochverfügbarkeitslösungenMySQL Hochverfügbarkeitslösungen
MySQL Hochverfügbarkeitslösungen
 
MySQL Backup
MySQL BackupMySQL Backup
MySQL Backup
 
MySQL für Oracle DBA's
MySQL für Oracle DBA'sMySQL für Oracle DBA's
MySQL für Oracle DBA's
 
MySQL Performance Tuning für Oracle-DBA's
MySQL Performance Tuning für Oracle-DBA'sMySQL Performance Tuning für Oracle-DBA's
MySQL Performance Tuning für Oracle-DBA's
 
Internet Briefing 2010: Performance Tuning & Scale-Out mit MySQL
Internet Briefing 2010: Performance Tuning & Scale-Out mit MySQLInternet Briefing 2010: Performance Tuning & Scale-Out mit MySQL
Internet Briefing 2010: Performance Tuning & Scale-Out mit MySQL
 
Der Datenbank-Backup ist gemacht - was nun?
Der Datenbank-Backup ist gemacht - was nun?Der Datenbank-Backup ist gemacht - was nun?
Der Datenbank-Backup ist gemacht - was nun?
 
Weltweite Produktionsdatenverwaltung mit MySQL-Replikation
Weltweite Produktionsdatenverwaltung mit MySQL-ReplikationWeltweite Produktionsdatenverwaltung mit MySQL-Replikation
Weltweite Produktionsdatenverwaltung mit MySQL-Replikation
 
MySQL Cluster with Galera Cluster for MySQL
MySQL Cluster with Galera Cluster for MySQLMySQL Cluster with Galera Cluster for MySQL
MySQL Cluster with Galera Cluster for MySQL
 
MySQL Hochverfügbarkeitslösungen
MySQL HochverfügbarkeitslösungenMySQL Hochverfügbarkeitslösungen
MySQL Hochverfügbarkeitslösungen
 
DOAG: NoSQL with MySQL
DOAG: NoSQL with MySQLDOAG: NoSQL with MySQL
DOAG: NoSQL with MySQL
 
MySQL Performance Tuning für Entwickler
MySQL Performance Tuning für EntwicklerMySQL Performance Tuning für Entwickler
MySQL Performance Tuning für Entwickler
 
MySQL High Availability Solutions
MySQL High Availability SolutionsMySQL High Availability Solutions
MySQL High Availability Solutions
 
Nagios Conference 2007 | Vmware Monitoring by Ingo Latschner
Nagios Conference 2007 | Vmware Monitoring by Ingo LatschnerNagios Conference 2007 | Vmware Monitoring by Ingo Latschner
Nagios Conference 2007 | Vmware Monitoring by Ingo Latschner
 
MySQL HA and Security
MySQL HA and SecurityMySQL HA and Security
MySQL HA and Security
 
Tanuki service wrapper_101
Tanuki service wrapper_101Tanuki service wrapper_101
Tanuki service wrapper_101
 

Ähnlich wie DOAG SIG: MySQL Replikation, Scale-Out, Master- Master Replikation, Backup

MySQL Replikation - Die Eier legende Wollmilchsau?
MySQL Replikation - Die Eier legende Wollmilchsau?MySQL Replikation - Die Eier legende Wollmilchsau?
MySQL Replikation - Die Eier legende Wollmilchsau?FromDual GmbH
 
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im ÜberblickBig Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im ÜberblickKarin Patenge
 
Back to Basics - Webinar 6: Produktivsetzung einer Anwendung
Back to Basics - Webinar 6: Produktivsetzung einer AnwendungBack to Basics - Webinar 6: Produktivsetzung einer Anwendung
Back to Basics - Webinar 6: Produktivsetzung einer AnwendungMongoDB
 
MySQL Security SLAC 2015
MySQL Security SLAC 2015MySQL Security SLAC 2015
MySQL Security SLAC 2015FromDual GmbH
 
Einführung in Puppet und Vagrant
Einführung in Puppet und VagrantEinführung in Puppet und Vagrant
Einführung in Puppet und Vagrants0enke
 
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratoren
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratorenIcsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratoren
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratorenICS User Group
 
Software Defined Freifunk Backbones
Software Defined Freifunk BackbonesSoftware Defined Freifunk Backbones
Software Defined Freifunk BackbonesMaximilan Wilhelm
 
Software Defined Freifunk Backbones
Software Defined Freifunk BackbonesSoftware Defined Freifunk Backbones
Software Defined Freifunk BackbonesMaximilian Wilhelm
 
Skalieren von Rails Anwendungen mit Amazon S3 und EC2
Skalieren von Rails Anwendungen mit Amazon S3 und EC2Skalieren von Rails Anwendungen mit Amazon S3 und EC2
Skalieren von Rails Anwendungen mit Amazon S3 und EC2Jonathan Weiss
 
bccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-admins
bccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-adminsbccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-admins
bccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-adminsICS User Group
 
Tipps und Skripts aus dem Leben eines Connections Admins
Tipps und Skripts aus dem Leben eines Connections AdminsTipps und Skripts aus dem Leben eines Connections Admins
Tipps und Skripts aus dem Leben eines Connections AdminsKlaus Bild
 
200 verteilte Oracle- Server mit Ansible ausrollen
200 verteilte Oracle- Server mit Ansible ausrollen200 verteilte Oracle- Server mit Ansible ausrollen
200 verteilte Oracle- Server mit Ansible ausrollenUwe Küchler
 
An Introduction to Ruby On Rails
An Introduction to Ruby On RailsAn Introduction to Ruby On Rails
An Introduction to Ruby On RailsJonathan Weiss
 
JSUG - OSGi by Michael Greifeneder
JSUG - OSGi by Michael GreifenederJSUG - OSGi by Michael Greifeneder
JSUG - OSGi by Michael GreifenederChristoph Pickl
 
Spezialitäten der Oracle Lizenzierung - DOAG Konferenz 2010 - OPITZ CONSULTI...
Spezialitäten der Oracle Lizenzierung -  DOAG Konferenz 2010 - OPITZ CONSULTI...Spezialitäten der Oracle Lizenzierung -  DOAG Konferenz 2010 - OPITZ CONSULTI...
Spezialitäten der Oracle Lizenzierung - DOAG Konferenz 2010 - OPITZ CONSULTI...OPITZ CONSULTING Deutschland
 

Ähnlich wie DOAG SIG: MySQL Replikation, Scale-Out, Master- Master Replikation, Backup (17)

MySQL Replikation - Die Eier legende Wollmilchsau?
MySQL Replikation - Die Eier legende Wollmilchsau?MySQL Replikation - Die Eier legende Wollmilchsau?
MySQL Replikation - Die Eier legende Wollmilchsau?
 
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im ÜberblickBig Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
 
Best Practices 
Java und JVM in Containern
Best Practices 
Java und JVM in ContainernBest Practices 
Java und JVM in Containern
Best Practices 
Java und JVM in Containern
 
Back to Basics - Webinar 6: Produktivsetzung einer Anwendung
Back to Basics - Webinar 6: Produktivsetzung einer AnwendungBack to Basics - Webinar 6: Produktivsetzung einer Anwendung
Back to Basics - Webinar 6: Produktivsetzung einer Anwendung
 
MySQL Security SLAC 2015
MySQL Security SLAC 2015MySQL Security SLAC 2015
MySQL Security SLAC 2015
 
Einführung in Puppet und Vagrant
Einführung in Puppet und VagrantEinführung in Puppet und Vagrant
Einführung in Puppet und Vagrant
 
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratoren
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratorenIcsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratoren
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratoren
 
Software Defined Freifunk Backbones
Software Defined Freifunk BackbonesSoftware Defined Freifunk Backbones
Software Defined Freifunk Backbones
 
Software Defined Freifunk Backbones
Software Defined Freifunk BackbonesSoftware Defined Freifunk Backbones
Software Defined Freifunk Backbones
 
Skalieren von Rails Anwendungen mit Amazon S3 und EC2
Skalieren von Rails Anwendungen mit Amazon S3 und EC2Skalieren von Rails Anwendungen mit Amazon S3 und EC2
Skalieren von Rails Anwendungen mit Amazon S3 und EC2
 
bccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-admins
bccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-adminsbccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-admins
bccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-admins
 
Tipps und Skripts aus dem Leben eines Connections Admins
Tipps und Skripts aus dem Leben eines Connections AdminsTipps und Skripts aus dem Leben eines Connections Admins
Tipps und Skripts aus dem Leben eines Connections Admins
 
200 verteilte Oracle- Server mit Ansible ausrollen
200 verteilte Oracle- Server mit Ansible ausrollen200 verteilte Oracle- Server mit Ansible ausrollen
200 verteilte Oracle- Server mit Ansible ausrollen
 
An Introduction to Ruby On Rails
An Introduction to Ruby On RailsAn Introduction to Ruby On Rails
An Introduction to Ruby On Rails
 
JSUG - OSGi by Michael Greifeneder
JSUG - OSGi by Michael GreifenederJSUG - OSGi by Michael Greifeneder
JSUG - OSGi by Michael Greifeneder
 
check_sap_health
check_sap_healthcheck_sap_health
check_sap_health
 
Spezialitäten der Oracle Lizenzierung - DOAG Konferenz 2010 - OPITZ CONSULTI...
Spezialitäten der Oracle Lizenzierung -  DOAG Konferenz 2010 - OPITZ CONSULTI...Spezialitäten der Oracle Lizenzierung -  DOAG Konferenz 2010 - OPITZ CONSULTI...
Spezialitäten der Oracle Lizenzierung - DOAG Konferenz 2010 - OPITZ CONSULTI...
 

Mehr von FromDual GmbH

MariaDB/MySQL pitfalls - And how to come out again...
MariaDB/MySQL pitfalls - And how to come out again...MariaDB/MySQL pitfalls - And how to come out again...
MariaDB/MySQL pitfalls - And how to come out again...FromDual GmbH
 
MariaDB / MySQL tripping hazard and how to get out again?
MariaDB / MySQL tripping hazard and how to get out again?MariaDB / MySQL tripping hazard and how to get out again?
MariaDB / MySQL tripping hazard and how to get out again?FromDual GmbH
 
PXC 5.5 to MariaDB 10.4 Galera Cluster Migration Workshop
PXC 5.5 to MariaDB 10.4 Galera Cluster Migration WorkshopPXC 5.5 to MariaDB 10.4 Galera Cluster Migration Workshop
PXC 5.5 to MariaDB 10.4 Galera Cluster Migration WorkshopFromDual GmbH
 
IT Tage 2019 MariaDB 10.4 New Features
IT Tage 2019 MariaDB 10.4 New FeaturesIT Tage 2019 MariaDB 10.4 New Features
IT Tage 2019 MariaDB 10.4 New FeaturesFromDual GmbH
 
MariaDB 10.4 New Features
MariaDB 10.4 New FeaturesMariaDB 10.4 New Features
MariaDB 10.4 New FeaturesFromDual GmbH
 
MariaDB 10.2 New Features
MariaDB 10.2 New FeaturesMariaDB 10.2 New Features
MariaDB 10.2 New FeaturesFromDual GmbH
 
PERFORMANCE_SCHEMA and sys schema
PERFORMANCE_SCHEMA and sys schemaPERFORMANCE_SCHEMA and sys schema
PERFORMANCE_SCHEMA and sys schemaFromDual GmbH
 
Reading MySQL fingerprints
Reading MySQL fingerprintsReading MySQL fingerprints
Reading MySQL fingerprintsFromDual GmbH
 
High-availability with Galera Cluster for MySQL
High-availability with Galera Cluster for MySQLHigh-availability with Galera Cluster for MySQL
High-availability with Galera Cluster for MySQLFromDual GmbH
 
MySQL always-up with Galera Cluster
MySQL always-up with Galera ClusterMySQL always-up with Galera Cluster
MySQL always-up with Galera ClusterFromDual GmbH
 
MySQL Indexierung CeBIT 2014
MySQL Indexierung CeBIT 2014MySQL Indexierung CeBIT 2014
MySQL Indexierung CeBIT 2014FromDual GmbH
 
Need for Speed: Mysql indexing
Need for Speed: Mysql indexingNeed for Speed: Mysql indexing
Need for Speed: Mysql indexingFromDual GmbH
 
MySQL for Oracle DBAs
MySQL for Oracle DBAsMySQL for Oracle DBAs
MySQL for Oracle DBAsFromDual GmbH
 
MySQL Performance Tuning Variables
MySQL Performance Tuning VariablesMySQL Performance Tuning Variables
MySQL Performance Tuning VariablesFromDual GmbH
 

Mehr von FromDual GmbH (16)

MariaDB/MySQL pitfalls - And how to come out again...
MariaDB/MySQL pitfalls - And how to come out again...MariaDB/MySQL pitfalls - And how to come out again...
MariaDB/MySQL pitfalls - And how to come out again...
 
MariaDB / MySQL tripping hazard and how to get out again?
MariaDB / MySQL tripping hazard and how to get out again?MariaDB / MySQL tripping hazard and how to get out again?
MariaDB / MySQL tripping hazard and how to get out again?
 
PXC 5.5 to MariaDB 10.4 Galera Cluster Migration Workshop
PXC 5.5 to MariaDB 10.4 Galera Cluster Migration WorkshopPXC 5.5 to MariaDB 10.4 Galera Cluster Migration Workshop
PXC 5.5 to MariaDB 10.4 Galera Cluster Migration Workshop
 
IT Tage 2019 MariaDB 10.4 New Features
IT Tage 2019 MariaDB 10.4 New FeaturesIT Tage 2019 MariaDB 10.4 New Features
IT Tage 2019 MariaDB 10.4 New Features
 
MariaDB 10.4 New Features
MariaDB 10.4 New FeaturesMariaDB 10.4 New Features
MariaDB 10.4 New Features
 
MariaDB 10.2 New Features
MariaDB 10.2 New FeaturesMariaDB 10.2 New Features
MariaDB 10.2 New Features
 
PERFORMANCE_SCHEMA and sys schema
PERFORMANCE_SCHEMA and sys schemaPERFORMANCE_SCHEMA and sys schema
PERFORMANCE_SCHEMA and sys schema
 
Reading MySQL fingerprints
Reading MySQL fingerprintsReading MySQL fingerprints
Reading MySQL fingerprints
 
High-availability with Galera Cluster for MySQL
High-availability with Galera Cluster for MySQLHigh-availability with Galera Cluster for MySQL
High-availability with Galera Cluster for MySQL
 
MySQL always-up with Galera Cluster
MySQL always-up with Galera ClusterMySQL always-up with Galera Cluster
MySQL always-up with Galera Cluster
 
HA with Galera
HA with GaleraHA with Galera
HA with Galera
 
MySQL Indexierung CeBIT 2014
MySQL Indexierung CeBIT 2014MySQL Indexierung CeBIT 2014
MySQL Indexierung CeBIT 2014
 
Need for Speed: Mysql indexing
Need for Speed: Mysql indexingNeed for Speed: Mysql indexing
Need for Speed: Mysql indexing
 
MySQL for Oracle DBAs
MySQL for Oracle DBAsMySQL for Oracle DBAs
MySQL for Oracle DBAs
 
MySQL Security
MySQL SecurityMySQL Security
MySQL Security
 
MySQL Performance Tuning Variables
MySQL Performance Tuning VariablesMySQL Performance Tuning Variables
MySQL Performance Tuning Variables
 

DOAG SIG: MySQL Replikation, Scale-Out, Master- Master Replikation, Backup

  • 1. MySQL Replikation, Scale-Out, Master- Master Replikation, Backup DOAG Regioaltreffen, München 23. März 2011 Oli Sennhauser Senior MySQL Consultant, FromDual GmbH oli.sennhauser@fromdual.com www.fromdual.com 1
  • 2. Inhalt MySQL Replikation HA Solutions ➢ Scale-Out Read scale-out ➢ MySQL Replikation Replication set-up for HA ➢ Master-Master fail-over Active/passive Replikation ➢ Binary Cluster MySQLLog Formate ➢ Semi-Synchrone Replikation Replication Cluster ➢ Backup Methoden Storage-Engine-Replication ➢ Restore ➢ SE Replikation mit PBXT www.fromdual.com 2
  • 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 www.fromdual.com 3
  • 4. Zuerst gab's da mal ein Problem: Kosten ● ● MySQL Design Scale-Up ● Physikalische Flaschenhälse ● „Relaxation of Constraints“ ● Web-Applikationen typischerweise: r >> w Scale-Out www.fromdual.com 4
  • 5. Der MySQL Scale-Out Ansatz Applikation ro rtw Slave Reporting Master Slave Backup Slave 1 Slave 2 Slave 3 ... Load balancer Web-Applikationen typischerweise: r >> w www.fromdual.com 5
  • 6. Master – Slave Replikation binlog dump thread master.info IO_ Application thread Async! relay-log.info binary bin-log.index log Master Slave SQL_ writer thread thread ... bin-log.m bin-log.n ... relay-log.m relay-log.n www.fromdual.com 6
  • 7. Erstellen eines Masters ● Binary Log einschalten und Server ID setzen (erfordert Neutstart): # my.cnf [mysqld] log_bin   = binary_log server_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 www.fromdual.com 7
  • 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 STATUSG ● Slave starten: START SLAVE; www.fromdual.com 8
  • 9. Für was kann man Slaves alles brauchen? Applikation ro rtw Slave Reporting Master Slave Backup Slave 1 Slave 2 Slave 3 ... Load balancer Web-Applikationen typischerweise: r >> w www.fromdual.com 9
  • 10. Massives Scale-Out M 5s ... S S S S S S ... ... S S S S S S S S ... ... S S S S S S S S S S ... ... S S S S S S S S S S S S ... ● Jetzt können sie auch erahnen wozu die BLACKHOLE SE gebraucht wird... www.fromdual.com 10
  • 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 www.fromdual.com 11
  • 12. Master – Master Replikation Applikation VIP M1 M2 Slave 1 Slave 2 Slave 3 Slave Backup ● Vorsicht beim Schreiben auf beide Master ● Man erhält so NICHT mehr I/O-Durchsatz! www.fromdual.com 12
  • 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 www.fromdual.com 13
  • 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       Intvar SET 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=0 SET TIMESTAMP=1300737340/*!*/; INSERT INTO test VALUES (NULL, 'Statement based replikation', NULL) www.fromdual.com 14
  • 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=0 SET 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_F BINLOG 'sK2HTRNSiQAALwAAAL8DAAAAAA8AAAAAAAEABHRlc3QABHRlc3QAAwMPBwJAAAI= sK2HTRdSiQAAPAAAAPsDAAAAAA8AAAAAAAEAA//4BwAAABVSb3cgYmFzZWQgcmVwbGlrYXRpb26w RydN'/*!*/; mysqlbinlog ­­base64­output=decode­rows ­­verbose bin­log.000002 www.fromdual.com 15
  • 16. Semi-Synchrone Replikation ● Bis 5.1 nur asynchrone Replikation! ● Ab 5.5 auch semi-synchrone Replikation: binlog dump thread IO_ thread binary log Master Slave SQL_ writer thread thread ... bin-log.m bin-log.n ... relay-log.m relay-log.n www.fromdual.com 16
  • 17. Backup Methoden www.fromdual.com 17
  • 18. Backup Methoden ● mysqldump ● Filesystem Kopie / mysqlhotcopy ● Snapshot mit LVM / btrfs ● InnoDB Hot Backup (ibbackup/xtrabackup) ● Backup Replikation Slave www.fromdual.com 18
  • 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! www.fromdual.com 19
  • 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. www.fromdual.com 20
  • 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? www.fromdual.com 21
  • 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 www.fromdual.com 22
  • 23. Wie funktionieren LVM Snapshots? LVM device LVM snap- shot device copy-on-write www.fromdual.com 23
  • 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 www.fromdual.com 24
  • 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... www.fromdual.com 25
  • 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 www.fromdual.com 26
  • 27. Restore / Recovery www.fromdual.com 27
  • 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? www.fromdual.com 28
  • 29. Point-in-Time-Recovery (PITR) Application Application Application binary log writer log_bin = on mysqld thread bin-log.1 bin-log.2 ... bin-log.n pos/time? full backup t www.fromdual.com 29
  • 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... www.fromdual.com 30
  • 31. Justify your restore Production Development Prod Acc Test Dev bck nightly restore DBA Developer www.fromdual.com 31
  • 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: www.fromdual.com 32
  • 33. Overhead der MySQL Replikation www.fromdual.com 33
  • 34. Architektur der PBXT Replikation www.fromdual.com 34
  • 35. Overhead der PBXT Replikation www.fromdual.com 35