maatkitEin Kollege hat mich vor kurzem auf Maatkit aufmerksam gemacht, eine Sammlung von Tools die laut dem Ersteller (Baron Schwartz) das Leben bzw. Arbeiten mit MySQL deutlich einfacher und sicherer machen.
Maatkit enthält viele nützliche Werkzeuge sowohl für single instance Installationen als auch komplexere Replikationsszenarien, so gibt es z.B. mk-heartbeat welches die Replikation überwacht. Hierbei wird auf dem Master ein kontiunierliches UPDATE mit dem aktuellen Timestamp auf einen Eintrag ausgeführt, ein zweiter mk-heartbeat Prozess überwacht auf den Slaves den Replication lag. Die Überwachung beruht also nicht auf dem MySQL internen ‘SHOW SLAVE STATUS;‘ Kommando.
Folgende Kommandos erzielen das gewünschte Ergebnis:

  • Master
# mk-heartbeat -D test --table maatkit --update
  • Slave
# mk-heartbeat -h <slave-host> -D test --table maatkit --monitor
3s [  0.08s,  0.02s,  0.01s ]
4s [  0.15s,  0.03s,  0.01s ]
5s [  0.23s,  0.05s,  0.02s ]
6s [  0.33s,  0.07s,  0.02s ]

Ein weiteres mitgeliefertes Programm ist mk-parallel-dump, eine deutlich performantere Alternative zu mysqldump. Wie der Name schon andeutet ermöglicht es dem Benutzer das Sichern einer Datenbank mit mehreren Tabellen in parallel, mit mysqldump werden die Tabellen sequentiell nacheinander gesichert. Zusätzlich erlaubt es “Backup Sets” zu erstellen um logisch zusammenhängende Tabellen (auch Datenbankübergreifen und mit Prioritäten versehen) gleichzeitig zu sichern.

mk-parallel-dump –base-dir /var/tmp –password t3fzpcay
default:            397 tables,   397 chunks,   397 successes,  0 failures,  22.79 wall-clock time,  33.41 dump time
# mk-parallel-dump --base-dir /var/tmp
default:  397 tables, 397 chunks, 397 successes, 0 failures, 22.79 wall-clock time, 33.41 dump time

Ein Tool zum Restore der erstellten Backups ist selbstverständlich ebenfalls enthalten: mk-parallel-restore.
Zusätzlich zu den hier genannten gibt es noch Tools um MySQL Query EXPLAINs übersichtlicher darzustellen, Table Checksummen zu errechnen, Tabellen nach Filtern zu Archivieren und noch vieles mehr. Ein Blick auf die Webseite des Projektes loht in jedem Fall.
Als Fazit lässt sich festhalten das Maatkit die Arbeit mit MySQL deutlich vereinfacht. Jeder der täglich mit MySQL zu tun hat wird dieses Toolkit kennen und lieben lernen, es vereint viele  nützliche Funktionen in einem und ist obendrein bei einigen Distributionen enthalten.