Multimaster MySQL

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Favorite, 1 Group & 1 Event

    Multimaster MySQL - Presentation Transcript

    1. Multimaster MySQL Arne Blankerts, IPC Spring 2009, Berlin 27. Mai 2009
    2. Wer sind wir Premium PHP Consulting & Training. Worldwide. Arne Blankerts Sebastian Bergmann Stefan Priebsch
    3. Disclaimer
    4. Master & Slave Zwei oder mehr MySQL Server in Abhängigkeit
    5. Master & Slave
      • Lesezugriffe erfolgen am Slave
      • Schreibzugriffe auf den Master
        • Änderungen beim Slave führen zu Problemen
          • Replikation bricht ab
          • Inkonsistenzen drohen
      • Ideal für load-balancing bei
        • SELECT-lastingen Seiten
        • Aufwendigen Suchen
        • Wenigen Schreibzugriffen
      • Kann als Fallback zum Master werden
    6. Master & Slave [theseer@nodeA etc]$ cat my.cnf # node A - setup [mysqld] server-id = 10 [theseer@nodeB etc]$ cat my.cnf # node B - setup [mysqld] server-id = 20 master-host = nodeA.example.org master-user = nodeAuser master-password = nodeApass
    7. Doppelpack Zwei Master Server?
    8. 2 Master Server
      • Setup
        • 2 MySQL Server Instanzen
          • MySQL Version 4.1 oder höher
        • Replikation via MySQL
          • Gleiche Serverversionen notwendig
    9. Zwei Master Server [theseer@nodeA etc]$ cat my.cnf # node A - setup [mysqld] server-id = 10 master-host = nodeB.example.org master-user = nodeBuser master-password = nodeBpass [theseer@nodeB etc]$ cat my.cnf # node B - setup [mysqld] server-id = 20 master-host = nodeA.example.org master-user = nodeAuser master-password = nodeApass
    10. $Master++ Weitere MySQL Server als Master
    11. $Master++
      • Architekturfrage
        • Ringverbindung
        • Stern
        • Mixed
    12. Probleme Oder: Was schief gehen kann wird schief gehen.
    13. Auto_increment
      • Zeitgleiches einfügen
        • führt zu Doppelten Ids
        • lässt die Replikation abbrechen
        • sorgt für inkonsitente Abhängigkeiten
    14. Auto_increment
      • MySQL Variablen
        • auto_increment_increment
          • Faktor, um den bei jedem Increment erhöht wird
        • auto_increment_offset
          • Wert, bei dem originär begonnen wird
    15. Auto_increment (2) [theseer@nodeA etc]$ cat my.cnf # node A - setup [mysqld] Server-id = 10 master-host = nodeB.example.org master-user = nodeBuser master-password = nodeBpass auto_increment_increment = 10 auto_increment_offset = 1 [theseer@nodeB etc]$ cat my.cnf # node B - setup [mysqld] Server-id = 20 master-host = nodeA.example.org master-user = nodeAuser master-password = nodeApass auto_increment_increment = 10 auto_increment_offset = 2
    16. Updates und Delete
      • Updates können sich gegenseitig überschreiben
        • Keine Garantie, welches Update ”gewinnt”
      • Delete und Update können sich in die Quere kommen
        • Was passiert wenn eine Node versucht einen Datensatz zu ändern, der auf der anderen Node schon gelöscht wurde?
    17. Updates und Delete
      • Keine automatisierte Lösung möglich
      • Architekturfragen:
        • Müssen Daten gelöscht werden?
        • Sind zeitkritische Updates notwendig?
          • Könnte man das durch Versionierung umgehen?
            • Erlaubt leicht syncronisierbare Inserts
        • Cluster verwenden
        • Master-Slave verwenden
    18. Temporäre Tabellen
      • Werden syncronisiert
        • Führt zu Problemen beim Re-Sync einer Node
    19. Temporäre Tabellen
      • Fester Tabellenname?
        • Replication-ignore-table Option verwenden
          • Mysql 5.1+
      • Auslagern in extra Datenbank
        • Diese Datenabnk nicht replizieren
          • Option Replication-ignore-db
      • Eventuell FEDERATED Tables verwenden
        • Erlaubt Zugriff auf Remote Server
        • Setzt MySQL 5.0.3+ voraus
    20. Zeitverschiebung
      • MySQL Replikation erfolgt asyncron
        • Zeitlich versetzte Aktualisierung
          • Unterschiedlicher Datenstand möglich
    21. Zeitverschiebung
      • Up2date-Hack verwenden
        • Federated Table mit Timestamp
        • Bei Überschreitung einer TTL auf Master direkt zurückgreifen
      • Cluster für syncrone Replikation
    22. Cluster [theseer@cluster etc]$ cat my.cnf [mysqld] ndbcluster ndb-connectstring=management.example.org [ndbd] connect-string=management.example.org [ndb_mgm] connect-string=management.example.org [ndb_mgmd] config-file=/etc/ndb_config.ini
    23. Cluster [theseer@cluster etc]$ cat ndb_config.ini [ndbd default] NoOfReplicas= 2 DataDir= /var/lib/mysql-cluster [ndb_mgmd] Hostname= management.example.org DataDir= /var/lib/mysql-cluster [ndbd] HostName= ndbd1.example.org [ndbd] HostName= ndbd2.example.org [mysqld] [mysqld]
    24. NonFood Textdatenbank Ein Praxisbericht
    25. Textdatenbank
      • Verwaltung von Texten für Verpackungen
        • Übersetzung in 16 Sprachen
        • Mehrere Agenturen
        • Mehrere Übersetzungsfirmen
        • Gemeinsame Portale zur Abstimmung
          • Lieferantenportal
          • Kundenportal
          • Länderportal für Übersetzungen
    26. Alternative Ansätze
    27. Alternativen
      • Für Standby-Lösungen
        • DRBD Devices
        • Heartbeat
        • Linux HA
      • Load Balance:
        • Flexibles master/slave Setup
          • Monitoring z.B.
            • MySQL 5.1 Scheduler und FEDERATED tables
            • Externem Cron
      • Trennung von Schreiben und Lesen
    28. Zusammenfassung
    29. Zusammenfassung
      • Multi-Master Replikation ist fehleranfällig
        • Anwendungen müssen unter Einbezug der Replikationsfähigkeit entwickelt werden
          • Zeitkritische Updates vermeiden
      • Die Wahl zwischen
        • Master/Slave,
        • Cluster
        • und Multi-Master
      ist stark von der Anwendung abhängig
        • Mix aus allem möglich, wenn auch aufwendig
    30. Links
      • MySQL Dokumentation: http://dev.mysql.com/
      • OnLamp Tutorial: http://tinyurl.com/onlamp-mysql
      • DRBD: http://www.drbd.org/
    31. Q & A
    32. Vielen Dank.
      • [email_address] / team@thephp.cc
      • XING: https://www.xing.com/profile/Arne_Blankerts
      • @arneblankerts / @thephpcc

    + Arne BlankertsArne Blankerts, 7 months ago

    custom

    950 views, 1 favs, 0 embeds more stats

    Kaum eine moderne Webseite kommt ohne Datenbank aus more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 950
      • 950 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 17
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories