PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Datenbankproblem



LordDarkmage
02.03.08, 20:04
Hallo,

in einer Datenbank gibt es eine Tabelle, die ich nicht reparieren kann.
myisamchk sagt mir "Found block that points outside data file at 28216".

Hab die HDD mehrmals nach Problemen gescannt. Die Datenbank sogar mal exportiert, gelöscht, neu angelegt und importiert. Der Fehler verschwindet nicht. Das Dumme ist, dass beim Aufruf der DB mysql bei "copying to temp table" stecken bleibt und mysql mir den Rechner komplett auslastet. Das geht sogar so weit, dass ich nicht mal mehr per SSH drauf zugreifen kann.

Was kann ich da machen?

Gruß und Dank
LordDarkmage

marce
02.03.08, 20:16
was verstehst Du unter "Du hast die DB exportiert"? Wie genau hast Du das gemacht (auch die folgenden Schritte)

Wie ist die sonstige Konfiguration der DB? Google lässt ein bisschen was zu der Art des Fehlers vermuten - hast Du eine Replikation am laufen?

LordDarkmage
02.03.08, 20:22
Ich hab mit mysqldump exportiert. Hab auch grad mal den mysql gestopt und die files rauskopiert und wieder reinkopiert. Trotzdem nix. Alles wie vorher

marce
02.03.08, 20:30
ach ja, Versionen wären noch nicht schlecht. Und die Antworten auf die restlichen Fragen.

LordDarkmage
02.03.08, 20:39
MySQL 4.1.13-standard

[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
myisam_sort_buffer_size = 8M
server-id = 1

LordDarkmage
02.03.08, 22:16
Da bastel ich jetzt schon eine Weile dran, aber ich bekomm es einfach nicht weg. Hab grad _nochmal_ die HDD geprüft. Ich denke das Problem exportiere und importiere ich mir jedesmal mit. Anders kann ich es mir nicht mehr erklären. Nur, wie werd ich es los? *verzweifelt*

marce
02.03.08, 22:51
hast Du eine Replikation am laufen?

... und was ist, wenn Du den Export auf einem anderen System importierst?

LordDarkmage
03.03.08, 06:00
Datenbankreplikation meinst du? Nein. Einfache MySQLDB für eine kleine und kaum besuchte Website. Keine Besonderheiten

Habs nun auf mysql5 importiert. Selbes Problem.

LordDarkmage
03.03.08, 17:54
Habs jetzt nochmal auf einem anderen Rechner versucht. MySQL 4.0 und 4.1 überall das Gleiche. Wie kann ich dieses dumme Problem los werden? :(

LordDarkmage
04.03.08, 20:48
Keiner mehr eine Idee was ich versuchen könnte?

marce
04.03.08, 21:35
Ideen gibt's viele, die ich probieren würde - das meiste ist nur sehr schwer zu beschreiben.

Ich kann mir aber auch nur schwer vorstellen, dass solch ein Fehler über mehrere PCs mitwandert - denn gerade nach dem SQL-Export (Du hattest dann doch reines SQL als Text-File?) sollte eigentlich derart bei einem Import nicht passieren können.

Ich würde z.B. erst mal Struktur und Daten trennen - und dann Datensatz für Datensatz einfügen und schauen, bei welchem sich der Fehler zeigt, evtl. auch mal einen anderen DB-Typ wählen, ...

samy-delux
04.03.08, 22:45
Hmm, also ich versteh nicht ganz wie du die Tabelle exportieren kannst, wenn mysql sie nicht lesen kann.
Es hört sich so an, als hättest du folgendes gemacht:
MySQL gestoppt, die Tabellen-Dateien mit mv oder cp wo anders hinbewegt und dann wieder zurück. Dannach MySQL wieder starten. Was soll das bringen? Sind ja noch die gleichen Datafiles. Auch wenn du die Dateien auf nen anderen Server schiebst, wird das nichts bringen.
Wenn du die Tabelle mit mysqldump exportieren kannst, während sie "crashed" ist, dann kennst du Tricks die ich nicht kenne ;)

Mein Tipp:
Fahr MySQL runter und probier die verschiedenen extra Optionen von myisamchk durch. Damit bekommst du die Tabelle wieder hin.
Link: http://dev.mysql.com/doc/refman/5.0/en/myisamchk-repair-options.html

Ich würde folgende Optionen der Reihe nach durchprobieren: -r, -o, -e
Damit solltest du die Tabelle wieder hinbekommen!

so long,
Samy