Mysql – Restore InnoDB tables / database using only data files

datafileinnodbMySQLrestore

I have MySQL Server 5.1.51 installed on Windows Server 2003 as Operating System and using InnoDB as database engine.

I have run DROP DATABASE dbName statement by mistake. I have no backup of that database and not enabled binary logging on server. But I have used one data file for all database. I have access to that data file (ibdata1) and log files (ib_logfile0, ib_logfile0).

May I restore the database using data files and log files?

If yes, then How can I do that?
What are the steps that I have to follow to restore the database?

Best Answer

Unfortunately, there is really not an easy way to get this table back. Although the data is likely still in the ibdata1 file, only specialized tools can recover it. If this data is business critical, some consulting companies such as Percona can help you to recover it, but that will be quite expensive (thousands of dollars at least), and not all of the data may be recoverable.

If this data is important to you enough to spend the money or time recovering it, save a copy of the ibdata1 file immediately as the disk space will be more likely to be re-used the longer the server is running.