228 MySQL - Technische Referenz f¨ur Version 5.0.1-alpha
5.4.6.6 Speicherbenutzung von myisamchk
Die Speicherzuordnung ist wichtig, wenn Sie myisamchk laufen lassen. myisamchk benutzt
nicht mehr Speicher, als Sie mir der -O-Option festlegen. Wenn Sie myisamchk f¨ur sehr
große Dateien benutzen wollen, sollten Sie zuerst entscheiden, wieviel Speicher Sie benutzen
wollen. Die Vorgabe liegt bei nur etwa 3 MB, um Dinge zu reparieren. Indem gr¨oßere
Werte benutzt werden, k¨onnen Sie myisamchk dazu bringen, schneller zu arbeiten. Wenn
Sie beispielsweise 32 MB Arbeitssp eicher haben, k¨onnten Sie Optionen wie die folgende
benutzen (zus¨atzlich zu weiteren Optionen, die Sie eventuell angeben):
shell> myisamchk -O sort=16M -O key=16M -O read=1M -O write=1M ...
-O sort=16M sollte f¨ur die meisten F¨alle ausreichen.
Denken Sie daran, dass myisamchk tempor¨are Dateien in TMPDIR benutzt. Wenn TMPDIR
auf ein Speicher-Dateisystem zeigt, k¨onnen Kein-Speicher-Fehler schnell auftreten. Wenn
das passiert, setzen Sie TMPDIR so, dass es auf ein Verzeichnis mit mehr Speicherplatz zeigt
und starten Sie myisamchk erneut.
Beim Reparieren ben¨otigt myisamchk große Mengen von Festplattenspeicher:
• Die doppelte Gr¨oße der Daten-Datei (die Originaldatei und eine Kopie). Dieser Platz
wird nicht ben¨otigt, wenn die Reparatur mit --quick durchgef¨uhrt wird, weil in diesem
Fall nur die Index-Datei neu erzeugt wird. Der Platz wird auf derselben Festplatte
ben¨otigt, wo die Original-Daten-Datei liegt!
• Platz f¨ur die neue Index-Datei, die die alte ersetzt. Die alte Index-Datei wird beim
Start beschnitten, daher kann man diesen Platz ¨ublicherweise ignorieren. Der Platz
wird auf derselben Platte ben¨otigt, auf der die Original-Index-Datei liegt!
• Wenn Sie --recover oder --sort-recover benutzen (aber nicht, wenn Sie
--safe-recover benutzen), brauchen Sie Platz f¨ur einen Sortierpuffer (Sort Buffer)
f¨ur: (gr¨oßter_schl¨ussel + zeilen_zeiger_l¨ange) * anzahl_der_zeilen * 2. Sie
k¨onnen die L¨ange der Schl¨ussel und die Zeilen-Zeiger-L¨anger mit myisamchk -dv
tabelle pr¨ufen. Dieser Platz wird auf der tempor¨aren Platte zugeordnet (festgelegt
durch TMPDIR oder --tmpdir=#).
Wenn Sie w¨ahrend der Reparatur ein Problem mit dem Plattenplatz bekommen, k¨onnen
Sie --safe-recover anstelle von --recover ausprobieren.
5.4.6.7 Benutzung von myisamchk f¨ur die Fehlerbeseitigung nach
Abst¨urzen
Wenn Sie mysqld mit --skip-locking laufen lassen (was auf einigen Systemen wie Linux
die Vorgabe ist), k¨onnen Sie myisamchk nicht zuverl¨assig daf¨ur benutzen, eine Tabelle zu
pr¨ufen, wenn mysqld diese Tabelle benutzt. Wenn Sie sicher sein k¨onnen, dass niemand
auf die Tabellen mit mysqld zugreift, w¨ahrend Sie myisamchk laufen lassen, m¨ussen Sie nur
ein mysqladmin flush-tables durchf¨uhren, bevor Sie anfangen, die Tabellen zu pr¨ufen.
Wenn Sie das nicht garantieren k¨onnen, m¨ussen Sie mysqld herunter fahren, w¨ahrend Sie
die Tabellen pr¨ufen. Wenn Sie myisamchk laufen lassen, w¨ahren mysqld die Tabellen ak-
tualisiert, erhalten Sie m¨oglicherweise die Meldung, dass eine Tabelle besch¨adigt ist, selbst
wenn sie es nicht ist.
Comentarios a estos manuales