Our MySQL server experienced an unexpected shutdown, and after restarting it, one of the InnoDB databases started producing errors. Some tables are accessible, but others fail when I try to run queries against them. The database contains important application data, so I’m trying to find a recovery method before rebuilding anything.
The biggest concern is that the latest backup isn’t completely current. Restoring it would get the database running again, but we’d lose records created after that backup. I would therefore prefer to recover whatever is still available from the existing database files and then compare it with the backup.
I’ve been reading about InnoDB recovery and keep seeing references to files such as .ibd and ibdata1. I’m not completely comfortable manipulating these files manually because I’m worried about making the corruption worse or losing metadata required to reconstruct the tables.
While researching recovery software, I came across the SysInfo MySQL Database Recovery Tool. It supports InnoDB as well as MyISAM and can work with files including IBD and ibdata. According to its documentation, it can recover tables, columns, keys, views, triggers, data types, and other database components.
The ability to preview the recovered content is particularly useful for my situation. I would like to inspect the tables and records first rather than immediately importing recovered data into the production server. The tool also provides an option to save recovered information as an SQL script, which could give me another way to verify the output before restoring it.
My main goal is MySQL InnoDB Recovery without modifying the original database files. I’m planning to work from a copy of the database files and keep the original untouched while testing the recovery process.
Has anyone successfully recovered an InnoDB database after an unexpected shutdown or server crash? What approach did you use?