Last week our mail server with innodb got corrupted,
neither the server nor did mysqld crash, so this
might be a mysql bug. Anyway mysqldummp won't dump
anything from messageblks and I found an other (slow)
way to get the data which aren't corrupted yet.
I recovered more 99% of the mails, lost like 1-2 hour mails
instead of 17GB
put this line in the my.cnf
innodb_force_recovery=4
then use the following instruction (replace messageblks
with the table which is corrupted)
mysql> SELECT * INTO OUTFILE '/data/dump'
-> FIELDS TERMINATED BY ','
-> OPTIONALLY ENCLOSED BY '"'
-> LINES TERMINATED BY '\n'
-> FROM messageblks;
mysql> LOAD DATA INFILE '/data/dump' INTO TABLE messageblks
-> FIELDS TERMINATED BY ',' ENCLOSED BY '"'
-> LINES TERMINATED BY '\n';
Hope this can help someone in the future
Ming-Wei