
322 MySQL - Technische Referenz f¨ur Version 5.0.1-alpha
• Wenn eine Anfrage, die auf dem Master funktionierte, nicht auf dem Slave l¨auft, und
eine komplette Datenbank-Synchronisation (das richtige, was man tun sollte) nicht
ratsam erscheint, versuchen Sie folgendes:
−
¨
Uberpr¨ufen Sie zun¨achst, ob irgend ein ’streunender’ Datensatz im Weg ist. Finden
Sie heraus, wie das geschehen konnte, dann l¨oschen Sie ihn und lassen SLAVE START
laufen.
− Wenn das Obige nicht funktioniert oder nicht zutrifft, versuchen Sie her-
auszufinden, ob es sicher ist, die Aktualisierung manuell durchzuf¨uhren (falls
notwendig) und ignorieren Sie dann die n¨achste Anfrage vom Master.
− Wenn Sie sich entschieden haben, dass Sie die n¨achste Anfrage ¨uberspringen
k¨onnen, f¨uhren Sie SET SQL_SLAVE_SKIP_COUNTER=1; SLAVE START; aus, um eine
Anfrage zu ¨uberspringen, die kein auto increment oder last insert id benutzt,
ansonsten SET SQL_SLAVE_SKIP_COUNTER=2; SLAVE START;. Der Grund, warum
auto increment- / last insert id-Anfragen anders sind, liegt darin, dass f¨ur Sie
zwei Ereignisse in der Bin¨ar-Log-Datei des Masters verzeichnet sind.
− Wenn Sie sicher sind, dass der Slave perfekt mit dem Master synchronisiert ges-
tartet ist, und dass niemand die fraglichen Tabellen ausserhalb des Slave-Threads
aktualisiert hat, berichten Sie den Bug, damit wir die oben beschriebenen Tricks
nicht noch einmal machen m¨ussen.
• Stellen Sie sicher, dass es sich nicht um alten Bug handelt, indem Sie auf die aktuellste
Version aktualisieren.
• Wenn alles Weitere fehlschl¨agt, lesen Sie die Fehler-Log-Dateien. Wenn diese Groß
sind, f¨uhren Sie ein grep -i slave /pfad/zu/your-log.err auf dem Slave durch. Es
gibt kein allgemeines Muster, nach dem man auf dem Master suchen k¨onnte, weil die
einzigen Fehler, die dieser mitschreibt, allgemeine Systemfehler sind - falls m¨oglich,
wird er Fehler an die Slaves senden, wenn etwas schief ging.
Wenn Sie sicher sind, dass es keine Benutzerfehler gibt und die Replikation immer noch
nicht funktioniert oder nicht stabil ist, ist es an der Zeit, einen Bug-Bericht auszuarbeiten.
Um dem Bug auf die Spur zu kommen, brauchen wir soviel Informationen von Ihnen wie
m¨oglich. Bitte nehmen Sie sich etwas Zeit und schreiben Sie einen guten Bug-Bericht. Im
Idealfall h¨atten wir gerne einen Test-Fall in dem Format, das Sie im mysql-test/t/rpl*-
Verzeichnis des Source-Baums finden. Wenn Sie einen solchen Test-Fall schicken, k¨onnen
Sie in den meisten F¨allen ein Patch innerhalb von ein oder zwei Tagen erwarten. Diese
Zeitspanne h¨angt allerdings von einer Anzahl weiterer Faktoren ab.
Die zweitbeste Option ist ein einfaches Programm mit leicht konfigurierbaren
Verbindungsargumenten f¨ur Master und Slave, das das Problem auf Ihrem System
veranschaulicht. Sie k¨onnen dies in Perl oder C schreiben, abh¨angig davon, welche Sprache
Sie besser beherrschen.
Wenn Sie den Bug auf eine der beiden oben beschriebenen Weisen demonstrieren k¨onnen,
benutzen Sie mysqlbug, um einen Bug-Bericht vorzubereiten, und schicken Sie ihn an
nicht einfach reproduziert werden kann - tun Sie folgendes:
• Stellen Sie sicher, dass kein Benutzerfehler im Spiel ist. Beispielsweise k¨onnte der
Slave ausserhalb des Slave-Threads aktualisiert werden - dann sind die Daten nicht
Comentarios a estos manuales