Thanks Mike,

I've always ignored CHECK TABLE because I always thought it was
just for MyISAM.

I ran CHECK TABLE.  It told me that my table was corrupt.  I then
dumped the table with mysqldump and recreated it.  After that
CHECK TABLE said it was OK (and in comparing values with the master
server it appears to have all data intact as well).  Unlike CHECK
TABLE, REPAIR TABLE only works on MyISAM tables, so I can't use that.

Then, I decided to run CHECK TABLE on all my tables (which for the
ones with 125 million rows will probably be running for a while).
The problem now is that all of my larger tables are reported as
being corrupt--every single table with more than say 500,000
records is reported as corrupt.  Wow!  Could this be true?  The
tables all access fine and only these two smaller tables had these
count(*) mismatch problems (and were the only two smaller tables
that came up corrupt).

How did this happen?  I've never gotten an error in my .err file,
never had a hardware access failure in the system logs, and have
done very little with this server beyond initially loading it
(by replaying mysqldump output in the first place) and letting it
stay up to date with replication.

It's going to take me a week to reload these tables if they are
all corrupt.  Based on what little this system has done so far,
I wonder how long it will be before they're corrupt again.

Is there a faster way to fix these corruptions than to dump and
reload the tables?

-keith

>>Hi Marc,
>>
>>Thanks for you response.  In answer to your questions, there are no
>>embedded newlines and I did look at index issues.  I did not try
>>rebuilding the index, which would be easy to do in this case since
>>the tables are small (unlike a couple of my other tables that have
>>125+ million rows and changing indexes is measured in days instead
>>of minutes).
>>
>>I forgot to mention in my first message that the "select count(*)..."
>>is the one that is wrong.  Counting all returned elements isn't too
>>high, the count(*) is too low.  Doing the count(*) on the same exact
>>table on a 4.0.17 system (the replication master) gives the correct
>>count.
>>
>>-keith

>Keith,
>         Try doing a "Check Table tablename".
>See http://dev.mysql.com/doc/mysql/en/CHECK_TABLE.html

>Mike




-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to