304 MySQL - Technische Referenz f¨ur Version 5.0.1-alpha
Log-Datei-Dateien enth¨alt. Vorgabem¨aßig hat diese denselben Namen wie die Bin¨ar-Log-
Datei, mit der Erweiterung ’.index’. Sie k¨onnen den Namen der Bin¨ar-Log-Index-Datei
mit der --log-bin-index=[filename]-Option ¨andern.
Wenn Sie Replikation benutzen, sollten Sie keine alten Bin¨ar-Log-Dateien l¨oschen, bis Sie
sicher sind, dass kein Slave sie jemals wieder ben¨otigen wird. Eine Art, das zu tun, ist,
einmal pro Tag mysqladmin flush-logs auszuf¨uhren, und danach alle Logs zu entfernen,
die ¨alter als 3 Tage sind.
Sie k¨onnen die Bin¨ar-Log-Datei mit dem mysqlbinlog-Befehl untersuchen. Beispielsweise
k¨onnen Sie einen MySQL-Server wie folgt aus der Bin¨ar-Log-Datei aktualisieren:
mysqlbinlog log-file | mysql -h server_name
Sie k¨onnen auch das mysqlbinlog-Programm benutzen, um die Bin¨ar-Log-Datei direkt von
einem entfernten MySQL-Server zu lesen!
mysqlbinlog --help gibt Ihnen weitere Informationen zur Benutzung dieses Programms.
Wenn Sie BEGIN [WORK] oder SET AUTOCOMMIT=0 verwenden, m¨ussen Sie die MySQL-Bin¨ar-
Log-Datei f¨ur Datensicherungen anstelle der alten Update-Log-Datei benutzen.
Das Loggen in die Bin¨ar-Log-Datei wird unmittelbar nach jeder Anfrage geschrieben, aber
bevor irgend welche Sperren aufgehoben wurden oder irgend ein Commit durchgef¨uhrt
wurde. Das stellt sicher, dass die Log-Datei in der Reihenfolge der Ausf¨uhrung mitschreibt.
Alle Aktualisierungen (UPDATE, DELETE oder INSERT), die eine transaktionale Tabelle (like
BDB-Tabellen) ¨andern, werden bis zu einem COMMIT gecachet. Jegliche Aktualisierungen
auf eine nicht transaktionale Tabelle werden sofort in der Bin¨ar-Log-Datei gespeichert.
Jedem Thread wird beim Start ein Puffer der Gr¨oße binlog_cache_size f¨ur die Pufferung
von Anfragen zugewiesen. Wenn eine Anfrage gr¨oßer als dieser ist, ¨offnet der Thread eine
tempor¨are Datei, um den gr¨oßeren Cache zu handhaben. Die tempor¨are Datei wird gel¨oscht,
wenn der Thread beendet wird.
max_binlog_cache_size kann dazu benutzt werden, um die gesamte benutzte Gr¨oße zu
begrenzen, und um eine Anfrage aus mehreren Transaktionen zu cachen.
Wenn Sie die Update- oder Bin¨ar-Log-Datei benutzen, funktionieren gleichzeitige
Einf¨ugeoperationen nicht im Zusammenhang mit CREATE ... INSERT und INSERT ...
SELECT. Damit stellen Sie sicher, dass Sie eine exakte Kopie Ihrer Tabellen wieder
herstellen k¨onnen, indem Sie die Log-Datei auf eine Datensicherung anwenden.
5.9.5 Die Anfragen-Log-Datei f¨ur langsame Anfragen
Mit der --log-slow-queries[=datei]-Option gestartet schreibt mysqld eine Log-Datei,
die alle SQL-Befehle enth¨alt, die l¨anger als long_query_time zur Ausf¨uhrung brauchten.
Die Zeit, um die anf¨anglichen Tabellensperren zu erhalten, wird nicht zur Ausf¨uhrungszeit
hinzugez¨ahlt.
Anfragen-Log-Datei f¨ur langsame Anfragen wird geschrieben, nachdem jede Anfrage aus-
gef¨uhrt wurde und nachdem alle Sp erren aufgehoben wurden. Das kann von der Reihenfolge
abweichen, in der die Statements ausgef¨uhrt wurden.
Wenn kein Dateiname angegeben wird, ist die Vorgabe der Name der Host-Maschine mit
dem Suffix -slow.log. Wenn ein Dateiname angegeben wird, der aber keine Pfadangabe
enth¨alt, wird die Datei ins Daten-Verzeichnis geschrieben.
Comentarios a estos manuales