Mysql innoDB corruption after server crash
- by Ward Loockx
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!