
Kapitel 5: MySQL-Datenbankadministration 223
zur Datei angeben, denn myisamchk weiß nicht, wo Ihre Datenbank liegt. In der Tat
k¨ummert sich myisamchk nicht darum, ob die Dateien, die es bearbeiten soll, in einem
Datenbank-Verzeichnis liegen oder nicht; sie k¨onnen diese Dateien daher an eine andere
Stelle kopieren und die Wiederherstellungsoperationen dort durchf¨uhren.
Sie k¨onnen in der myisamchk-Befehlszeile mehrere Tabellen angeben, wenn Sie wollen. Sie
k¨onnen auch einen Namen als Indexdateinamen angeben (mit dem Suffix ‘.MYI’), was Ihnen
gestattet, alle Tabellen in einem Verzeichnis anzugeben, indem Sie das Muster ‘*.MYI’
benutzen. Wenn Sie zum Beispiel in einem Datenbank-Verzeichnis sind, k¨onnen Sie alle
Tabellen im Verzeichnis wie folgt pr¨ufen:
shell> myisamchk *.MYI
Wenn Sie nicht im Datenbank-Verzeichnis sind, k¨onnen Sie alle dortigen Tabellen pr¨ufen,
indem Sie den Pfad zum Verzeichnis angeben:
shell> myisamchk /pfad/zum/datenbank_verzeichnis/*.MYI
Sie k¨onnen sogar alle Tabellen in allen Datenbanken pr¨ufen, indem Sie einen Platzhalter im
Pfad zum MySQL-Daten-Verzeichnis angeben:
shell> myisamchk /pfad/zum/datadir/*/*.MYI
Um schnell alle Tabellen zu pr¨ufen, wird folgender Befehl empfohlen:
myisamchk --silent --fast /pfad/zum/datadir/*/*.MYI
isamchk --silent /pfad/zum/datadir/*/*.ISM
Wenn Sie alle Tabellen pr¨ufen und alle Tabellen reparieren wollen, die besch¨adigt sind,
k¨onnen Sie folgende Kommandozeile eingeben:
myisamchk --silent --force --fast --update-state -O key_buffer=64M -O sort_buffer=64M -O read_buffer=1M -O write_buffer=1M /pfad/zum/datadir/*/*.MYI
isamchk --silent --force -O key_buffer=64M -O sort_buffer=64M -O read_buffer=1M -O write_buffer=1M /pfad/zum/datadir/*/*.ISM
Hierbei wird angenommen, dass Sie mehr als 64 MB Arbeitsspeicher frei haben.
Wenn Sie einen Fehler wie den folgenden erhalten:
myisamchk: warning: 1 clients is using oder hasn’t closed the table properly
Bedeutet das, dass Sie versuchen, eine Tabelle zu ¨uberpr¨ufen, die durch ein anderes Pro-
gramm aktualisiert wurde (wie dem mysqld-Server), das die Datei noch nicht geschlossen
hat oder das a/jointfilesconvert/293675/bgest¨urzt ist, ohne die Datei ordnungsgem¨aß zu schließen.
Wenn mysqld l¨auft, m¨ussen Sie ein Sync/Schließen aller Tab ellen mit FLUSH TABLES erzwin-
gen und sicherstellen, dass niemand die Tabellen benutzt, w¨ahrend Sie myisamchk laufen
lassen. In MySQL-Version 3.23 ist die einfachste M¨oglichkeit, dieses Problem zu vermeiden,
die Benutzung von CHECK TABLE anstelle von myisamchk.
5.4.6.2 Allgemeine Optionen f¨ur myisamchk
myisamchk unterst¨utzt folgende Optionen:
-# oder --debug=debug_optionen
Ausgabe eines Debug-Logs. Die Zeichenkette debug_optionen ist h¨aufig
’d:t:o,dateiname’.
-? oder --help
Hilfetext ausgeben und beenden.
Comentarios a estos manuales