Ripristinare tabelle MySql corrotte (storage MyIsam) Data: 07/03/2014
Su MySQL server 5.6 (e forse anche qualche altra versione +/- vicina a questa) se si hanno tabelle di dimensione superiore a 4Gb, cancellando numerosi record e successivamente effettuando un OPTIMIZE TABLE il risultato è che la tabella viene corrotta e nemmeno il comando REPAIR TABLE è in grado di ripristinarla. Il messaggio di errore a seguito del comando REPAIR TABLE è il seguante:
error 0 when fixing table
Can't get stat of '......\test_table.MYD' (Errcode: 0 - No error)
Operation failed
Attualmente sembra che il bug non sia stato corretto e se ne parla qui:
L'unico modo in cui sono riuscito a ripristinare la tabella è stato quello di usare il file myisamchk.exe preso da una versione meno recente di MySQL (nel mio caso 5.1).
Ecco la procedura:
Fare una copia di Backup dei file .FRM, .MYD, .MYI della tabella in questione (nel seguente caso email)
Eseguire dal prompt dei comandi il seguente comando:
C:\>myisamchk -o -f --sort_buffer_size=10485760 E:\MySQL\data\workflow\email.MYI
Successivamente, riavviare l'istanza di MySQL e la tabella dovrebbe essere nuovamente accessibile.
|