Mysql innoDB corruption after server crash

Posted by Ward Loockx on Server Fault See other posts from Server Fault or by Ward Loockx
Published on 2012-09-01T07:53:03Z Indexed on 2012/09/01 9:39 UTC
Read the original article Hit count: 245

Filed under:
|

Yesterday my server died because an outage in the data center. Today it's back up, but having some problems with mysql.

First of all my mysql server was not able to start. For this reason I deleted the files ib_logfile0 and ib_logfile1 in /var/lib/mysql folder (I still have the old failing files).

After this my server was able to startup again. But now I see a lot of issues in the mysql log file.

Sep  1 09:43:55 * mysqld: 120901  9:43:55  InnoDB: Error: page 70944 log sequence number 8 1483471899
Sep  1 09:43:55 * mysqld: InnoDB: is in the future! Current system log sequence number 5 612394935.
Sep  1 09:43:55 * mysqld: InnoDB: Your database may be corrupt or you may have copied the InnoDB
Sep  1 09:43:55 * mysqld: InnoDB: tablespace but not the InnoDB log files. See
Sep  1 09:43:55 * mysqld: InnoDB: http://dev.mysql.com/doc/refman/5.1/en/forcing-recovery.html

When I check the docs on mysql.com, I found that I need to recover my database with backups. I have a backup but not sure what's the good way on importing it. Or is there a way to recover without having to re-import the database again?

So if I'm correct I need to put innodb_force_recovery to 4 in mysql and delete all current data and re-import? Is there a way to do this without having downtime?

I also have one slave running. This slave has the current status now:

Last_Error: Relay log read failure: Could not parse relay log event entry. The possible reasons are: the master's binary log is corrupted (you can check this by running 'mysqlbinlog' on the binary log), the slave's relay log is corrupted (you can check this by running 'mysqlbinlog' on the relay log), a network problem, or a bug in the master's or slave's MySQL code. If you want to check the master's binary log or slave's relay log, you will be able to know their names by issuing 'SHOW SLAVE STATUS' on this slave.

How can I totally reset the slave after the new import on the master has happend?

Hopefully we can find a solution without not to much downtime.

Thanks!

© Server Fault or respective owner

Related posts about mysql

Related posts about mysqldump