myisamchk nur kaputte Tabellen reparieren

MySQL, PostgreSQL, SQLite
cirox
Posts: 212
Joined: 2006-05-08 23:20
Location: Berlin

myisamchk nur kaputte Tabellen reparieren

Post by cirox » 2008-03-20 14:25

Nach einem MySQL ServerAbsturz möchte ich nun nur!die kaputten Tabellen reparieren von ungefähr 250 Datenbanken. Ein

Code: Select all

mysqlcheck --all-databases --auto-repair --extended --optimize -uroot -p


hat schon mal gar nichts gebracht. Hier ist alles ok :?:

Die kaputten Tabellen werden aber als "is marked as crashed" in phpMyAdmin angezeigt und sind "in Benutzung". Das einzig funktionierende zum Überprüfen - also alles in einem Rutsch - scheint zu sein auf der Shell:

Code: Select all

for i in `find /var/lib/mysql/ -type f -name *.MYI`; do myisamchk ${i}; done


Jetzt erscheinen in der Standardausgabe auch die ganzen fehlerhaften Tabellen. Wie kann ich den Befehl mit der for - do Schleife so abändern, dass er automatisch die kaputten (marked as crashed oder ähnlich) Tabellen repariert? Ein "myisamch -r" würde ja alle Tabellen reparieren und nicht nur die Kaputten. Ein "myisamchk --auto-repair" hab ich nicht gefunden.

PS:

1. Was ich auch nicht verstehe ist: Warum sendet mir das debian mysql Start Script eine detaillierte Zusammenfassung welche Tabelen "corrupt" sind mittels "mysqlcheck" und der Befehl siehe oben! sagt, dass alles ok ist. :?:

2. Bekommt man unter debian nicht nach jedem (re)Start so eine Mail? Wie kannich das debuggen, wenn nichts ankommt. Also die Mail wird gar nicht an (mailx) übergeben.

aubergine
RSAC
Posts: 475
Joined: 2005-09-10 17:52
Location: Frankfurt am Main

Re: myisamchk nur kaputte Tabellen reparieren

Post by aubergine » 2008-03-21 11:03

Was soll es an einer Tabelle die OK. ist zu reparieren geben?

=> http://dev.mysql.com/doc/refman/5.1/de/myisamchk.html

cirox
Posts: 212
Joined: 2006-05-08 23:20
Location: Berlin

Re: myisamchk nur kaputte Tabellen reparieren

Post by cirox » 2008-03-21 11:59

Das hat mich zum Ziel gebracht

Code: Select all

for i in `find /var/lib/mysql/ -type f -name *.MYI`; do myisamchk --fast --force --update-state ${i}; done