Konsistenz einer Datenbankreplikation prüfen

Das Einrichten von Replikationen unter MySQL ist „recht einfach“. Schwieriger ist es die Konsistenz der replizierten Datenbanken herauszufinden. Gerade nach einem Ausfall und dem erneuten Aufsetzen der Replikation.
Eine Variante ist die Benutzung des Maatkit Toolkit, welches für Anwender, Entwickler und Administratoren von Open-Source-Datenbanken (z.B. MySQL, PostgreSQL, …) entwickelt wurde. Das Toolkit stellt unter anderem Skripte bereit um mittels Checksummen verschiedene Datenbanken miteinander zu vergleichen.

Zunächst werden die Scripte des Maatkit Toolkit benötigt.

wget http://www.maatkit.org/get/mk-table-checksum
wget http://www.maatkit.org/get/mk-checksum-filter

Nicht vergessen die heruntergeladenen Skripte ausführbar zu machen!
Alternativ kann auch das gesamte Toolkit aus den Paketquellen installiert werden.

sudo apt-get install maatkit

Danach können mittels mk-table-checksum alle Checksummen der angegebenen Datenbank wie folgt angezeigt werden.

mk-table-checksum h=host1,u=user,p=pass h=host2,u=user,p=pass … –databases db

Da sich das Lesen der Rückgabe bei größeren Datenbanken recht schwierig gestaltet empfiehlt sich er Einsatz des Skripts mk-checksum-filter als Ausgabefilter.

mk-table-checksum h=host1,u=user,p=pass … –databases db | mk-checksum-filter

Hiermit werden nur die Tabellen angezeigt, die Unterschiede in der Checksumme haben.

Mit ein bisschen basteln kann diese Information z.B. in einem Script regelmäßig die Konsistenz der Datenbank prüfen und im Fehlerfall per Mail den Admin informieren. Selbstverständlich gibt es noch viele weitere Funktionen und Parameter auf die ich nicht eingegangen bin, diese sind in der Dokumentation gut beschrieben.

Weitere Informationen zum Thema:
http://www.maatkit.org/
http://www.maatkit.org/doc/mk-table-checksum.html
http://www.maatkit.org/doc/mk-checksum-filter.html
http://code.google.com/p/maatkit/