A couple of weeks ago I had another client take advantage of my Emergency Software Troubleshooting services. They had a web site maintained by a popular CMS system. Unfortunately, their scheduled backups weren't as scheduled or robust as they thought and they were left without a website (or backend database) after their hard disk died. I was called to help.
After some invesigation, we surmised we were left with:
- a bunch of .myd, .myi file backups for MySql (they were a couple of months old)
- another .sql file backup of the database 12 months old
- a file system backup of the site a couple of months old
- and another file system backup around 12 months old.
We rebuilt the database using a combination of the most recent myd and myi files. This was a bit of a trick as the .frm files were missing in some cases. What we did in those cases was create a dummy .frm file, rebuild the tables from the myd/myi files and when we did that we had mysql replace the frm file (it's an option you can enable during this operation). We then used the data from the older database to populate the tables that didn't have the frm files.
With the file systems, it was a matter of patching together what worked between the two file system backups with the data we had in the database. Since the old system was pretty much blown away, it was decided to upgrade the OS and the web server at the same time. This meant reconfiguring the web server and ensuring the majority of the site worked. In the end, the site was pretty much ready to go after 8.5 hours of work.