Puppet MySQL Module

Puppet ist eine angenehme Art Systeme zu konfigurieren. Ein MySQL Server lässt sich damit einfach aufsetzen. Für eine einmalige Installation von MySQL ist der Weg über Puppet zu viel Aufwand. Hat man jedoch viele Datenbankinstallationen zu verwalten oder möchte man unterschiedliche Konfigurationen testen, dann ist Puppet ein gutes Werkzeug. Es gibt einige Puppet Module die wir uns nun näher anschauen. Weiterlesen

MySQL Installation mit Puppet

Ein einfacher Weg MySQL zu installieren ist mit Puppet. Die Argumente für und wider Puppet lassen wir an dieser Stelle beiseite. In einem anderen Beitrag werden wir mehrere MySQL Instanzen auf unterschiedlichen Ports auf einem Server installieren, um zum Beispiel die MySQL Replikation zu verstehen. Puppet bietet einen schönen Ansatz den Überblick zu behalten. Hier einige Beispiele mit Ubuntu 14.04 und Puppet 3.4. Weiterlesen

MySQL Fabric

Oracle veröffentlichte im Mai 2014 MySQL Fabric . MySQL Fabric ist ein Framework das ein MySQL Server um zwei Funktionen erweitert: High Availability (HA) und Sharding. High Availability (HA) wurde bereits teilweise durch MySQL Replication oder durch MySQL Cluster erreicht . Sharding in Form von vertical partitioning existiert bereits seit MySQL 5.1 . MySQL Cluster (MySQL NDB Cluster) versucht durch die in-memory storage engine NDB das horizontal partitioning, jedoch mit der Einschränkung dass alle Daten in den RAM passen müssen. Betreibt man zum Beispiel 4 x MySQL Server mit insgesamt 10 TB (Daten + Index), dann benötigt man laut der Formel in den MySQL FAQ’s ohne Replikation 172 Server mit 64GB RAM. Neben dieser Entschränkung, sind der höhere Konfigurationsaufwand und das neue Schema-Design Hürden, warum MySQL Cluster keiner großen Beliebtheit findet . In vielen Fällen ist es dann einfacher die Logik der horizontalen Partitionierung in die Applikation zu implementieren. MySQL Fabric verwendet einen anderen Sharding-Ansatz. Schauen wir uns das genauer an.

Weiterlesen

Test Data Generator

Bei Performancetests von Datenbanken, ist das Ergebnis nicht nur abhängig von dem Schema und den Abfragen, sondern auch von den Daten. Deshalb ist es sinnvoll sich einen Moment Gedanken darüber zu machen, wie diese im Produktivbetrieb aussehen werden, um dann darauf die Performancetests durchzuführen. Im ersten Schritt wird untersucht, welche Eigenschaften der Daten besonders für die Performance eine Rolle spielen, um dann im zweiten Schritt ein Tool zur Generierung von Testdaten zu finden, welches diese Anforderungen erfüllt.

Weiterlesen

MySQL Caching

Durch Screenshots wird eine langsame Abfrage festhalten und per Mail an einen herangetragen. Im Slow-Query Log ist die Abfrage mit mehr als 5 Sekunden zu finden, aber trotz SQL_NO_CACHE lässt sich die lange Laufzeit nicht nachstellen. Hier wird das Caching von MySQL beschrieben, um bestimmte Situationen zu verstehen und zu provozieren.

Weiterlesen