MySQL-Replikation

Dieser Artikel ist der zweite Teil einer kleinen Gruppe von Artikeln über MySQL-Backups. Die weiteren Artikel werden hier verlinkt, sobald sie erscheinen:

Hier ist der erste Artikel: MySQL-Backups, aber wie?

Hier ist der dritte Artikel: Hinter der MySQL-Replikation aufräumen

Hier ist der vierte und letzte Artikel: MySQL mit daemontools

Wie im ersten Teil erläutert, nutzen wir gerne eine zweite MySQL-Instanz mit Replikation (einen sogenannten Slave), um MySQL-Backups zu realisieren. In diesem Teil geht es um die Einrichtung dieser Replikation.

Vorab …

Levenshtein mit DBIx::Class

Da ich mittlerweile verstärkt mit Catalyst als Framework arbeite und hier als Model-Integration typischerweise DBIx::Class verwendet wird, komme ich nicht umhin, mich weitergehend mit der entsprechenden Syntax auseinanderzusetzen. Dabei mache ich fast jeden Tag die gleiche Erfahrung: DBIx::Class macht die einfachen Anwendungsfälle von SQL noch einfacher, aber die schwierigeren Anwendungsfälle noch viel schwieriger, denn die Klimmzüge, die hier bisweilen in der kruden SQL::Abstract-Syntax zu vollziehen sind, haben es wirklich in sich.

Als Beispiel erstmal der einfache Fall:

my $contact = 

Levenshtein-Distanz mit MySQL

Für ein Projekt benötigte ich eine Möglichkeit, eine Duplikatsprüfung durchzuführen. Anforderung war, nicht nur identische, sondern auch „ähnliche“ Datenbank-Einträge wiederfinden können. Dabei stieß ich auf den Algorithmus der Levenshtein-Distanz. MySQL kennt von Haus aus keine Funktion hierfür. Nach einigem Suchen bin ich allerdings auf ein kleines Plugin gestoßen, dass diesen Algorithmus als user-defined function nachrüstet.

Um es kurz zu machen – für die Installation auf einem CentOS 5 auf einer 64-Bit-Plattform habe ich folgende Schritte benötigt:

mkdir /usr/local/src/mysql_levenshtein_udf-1.0
cd 

Unvorhergesehene Ereignisse

Aufgrund eines unvorhergesehenen Ereignisses sind wir momentan telefonisch nicht erreichbar. Bitte versuchen Sie es zu einem späteren Zeitpunkt erneut.

Von wem möchte man diese Ansage nun wirklich nicht hören? Richtig: Von der Störungshotline des eigenen Telefonanbieters. Versatel routet nämlich gerade meine IP-Pakete zwar noch so ein bisschen von meinem DSL-Zugang in sein eigenes Netz, wo sie dann aber schließlich versanden. Rufe ich mein Handy an, verrät mir eine Ansage, die gewählte Nummer sei „unvollständig“. Anrufe zu anderen Festnetzanschlüssen funktionieren manchmal, …

„Wir werden nicht eine Plage“

Ist man schon je unterhaltsamer von einem – an sich englischsprachigen – Shop, der sich 2010 erstmalig auch über den großen Teich wagt, über den Umgang mit seinen persönlichen Daten informiert worden?

Wir werden niemals verkauft oder vermietet Ihre Informationen. Wir speichern keine Ihrer finanziellen Daten. Wir verkaufen nur Kalender! Wenn Sie bei uns kaufen, können wir uns mit Ihnen im nächsten Jahr wieder sehen, wenn Sie interessiert sind. Wir werden nicht eine Plage.

Schreiben die mit den lustigen Kalendern

Man kann’s ja mal versuchen … die Zweite

Ist das zu fassen? Meine deutliche Antwort an den Versender der ersten Mail, dass ich wohl kaum einem anonymen Dritten gegenüber Informationen über meine Geschäftsbeziehungen geben werde, war wohl nicht genug. Heute geht es weiter:

Vorausgesetzt auch Sie gehören zum großen Kreis derer, die Ihren unbezahlten Rechnungen nachtrauern, vermutete ich Interesse, an einer minimalen unterstützenden Zusammenarbeit, die dann auch bezahlt würde.
Bitte entschuldigen Sie, wenn ich Unmut in Ihnen auslöste. Dies war nicht meine Absicht.
Da die Klage noch

Man kann’s ja mal versuchen …

Eben frisch in meiner Mailbox eingetroffen:

Sehr geehrter Herr Pasche,

ich bin auf der Suche nach Informationen über die Firma $FIRMA. Ein Mandant von mir klagt gegen diese wegen ausstehender Zahlungen.

Da uns leider noch Beweismaterial fehlt, recherchiere ich nun im Umfeld der Firma.
Mir wurde mitgeteilt, dass Sie die Homepage betreuen.

Stimmt das und wie stehen Sie zu dieser Firma?

Vielen Dank für eine Antwort!

Die Unterschrift habe ich nicht etwa weggekürzt – da war einfach keine. Auch ist …