Kapitel 5: MySQL-Datenbankadministration 303
passenden Zeilen findet, wird nichts in die Log-Datei geschrieben. Es werden sogar UPDATE-
Statements ¨ubersprungen, die eine Spalte auf einen Wert setzen, die sie bereits hat.
Das Schreiben in die Update-Log-Datei wird unmittelbar durchgef¨uhrt, nachdem eine An-
frage fertig ist, aber bevor irgend welche Sperren aufgehoben sind oder irgendein Commit
durchgef¨uhrt wurde. Das stellt sicher, dass die Log-Datei stets in der Reihenfolge der
Ausf¨uhrung mitschreibt.
Wenn Sie eine Datenbank von Update-Log-Datei-Dateien aktualisieren wollen, k¨onnten
Sie folgendes tun (angenommen, Ihre Update-Log-Dateien haben Namen der Form
‘datei.###’):
shell> ls -1 -t -r datei.[0-9]* | xargs cat | mysql
ls wird benutzt, um alle Log-Dateien in der richtigen Reihenfolge zu erhalten.
Das ist n¨utzlich, wenn Sie Datensicherungsdateien nach einem Absturz zur¨uckspielen
m¨ussen und die Aktualisierungen neu ausf¨uhren wollen, die zwischen der Zeit der
Datensicherung und dem Absturz lagen.
5.9.4 Die bin¨are Update-Log-Datei
In Zukunft wird die Bin¨ar-Log-Datei die Update-Log-Datei ersetzen, daher empfehlen wir,
dass Sie so bald wie m¨oglich zu diesem Log-Format wechseln!
Die Bin¨ar-Log-Datei enth¨alt alle Informationen, die im Update-Log verf¨ugbar sind, in einem
effizienteren Format. Sie enth¨alt ausserdem Informationen dar¨uber, wie lange jede Anfrage
brauchte, die die Datenbank aktualisierte.
Die Bin¨ar-Log-Datei wird auch benutzt, wenn Sie einen Slave von einem Master replizieren.
Siehe Abschnitt 5.10 [Replication], Seite 306.
Mit der --log-bin[=datei]-Option gestartet, schreibt mysqld eine Log-Datei, die alle
SQL-Befehle enth¨alt, die Daten aktualisieren. Wenn kein Dateiname angegeben wird, ist
die Vorgabe der Name der Host-Machine, gefolgt von -bin. Wenn der Dateiname angegeben
wird, aber keine Pfadangabe enth¨alt, wird die Datei ins Daten-Verzeichnis geschrieben.
Sie k¨onnen folgende Optionen f¨ur mysqld benutzen, um zu beeinflussen, was in die Bin¨ar-
Log-Datei geschrieben wird:
binlog-do-db=datenbank Weist den Master an, Aktualisierungen f¨ur die
angegebene Datenbank zu loggen und alle anderen,
nicht explizit erw¨ahnten, auszuschließen. (Beispiel:
binlog-do-db=eine_datenbank)
binlog-ignore-db=datenbank Weist den Master an, Aktualisierungen f¨ur die
angegebene Datenbank nicht in die Bin¨ar-Log-Datei
zu loggen (Beispiel: binlog-ignore-db=eine_
datenbank).
mysqld h¨angt dem Bin¨ar-Log-Datei-Dateinamen eine Erweiterung an, die eine Zahl ist,
die jedes Mal heraufgez¨ahlt wird, wenn Sie mysqladmin refresh, mysqladmin flush-logs
oder ein FLUSH LOGS-Statement ausf¨uhren oder den Server neu starten.
Damit Sie feststellen k¨onnen, welche verschiedenen Bin¨ar-Log-Datei-Dateien benutzt wur-
den, erzeugt mysqld auch eine Bin¨ar-Log-Index-Datei, die die Namen aller benutzten Bin¨ar-
Comentarios a estos manuales