My InnoDB Table is corrupted from optimize table.

My server autorun optimize table everyday and today, it run and failed for 6 hours until I found out. Percona Server become cannot start. It keep saying page is corrupt so, I set innodb_force_recovery=1 and it can run again. I do recover by using below method

http://www.mysqlperformanceblog.com/2008/07/04/recovering-in nodb-table-corruption/

It helped me recover some of database out but 20% is unrecoverable and it’s table user which is the most important.

My question is “Did optimize table should not be run everyday to make the database run faster?” and “Do optimize table can make the database corrupt?” My server is Joyentcloud which is run on OpenSolaris with Percona Server 5.5. I suspect if it’s hardware problem from hosting itself or it’s some mysql bug. Do you have any suggestion?

If it’s getting corrupted, there is probably a problem with the storage system. It is very unlikely that it’s a MySQL bug.

You are not supposed to be able to corrupt your database! You are not doing anything wrong.

I would not optimize the table every day unless you can measure that it improves performance. See http://www.xaprb.com/blog/2010/02/07/how-often-should-you-us e-optimize-table/

Do it possible that cronjob accidentally run optimize twice while the first one still running and end up corrupt table?