Our mysql ibdata1 file was deleted earlier today. This wasn't noticed until mysqld was restarted and there was no data in the tables. The machine is a CentOs VM in Xenserver. At this point a snapshot was taken. Then the mysql database was dropped and restored from a backup. The backup not as current as I'd like it to be. I've been researching ways that ibdata might be recovered from the snapshot (ext3grep, undelete) and I briefly tried them on the machine after the snapshot but before giving up and restoring the old backups. I am looking at the snapshot now, trying to figure out how get it with making a live VM and mounting the filesystem.
I was wondering anyone had any advice or expereience if this is a pointless road to go down, or other suggestions.

Thank you.

link|improve this question

75% accept rate
it seems to me that this is two questions: 1. how to access data in a snapshot (you probably need to access this as a block-device to be able to retrieve data which has been deleted from the filesystem). How to do this depends on how you access disk from xen, but from what you write i understand that you have access to the data already. 2. how to undelete data from an ext3-formatted block-device. Is this a precise understanding? What, exactly, do you need help doing? – Rolf Rander Jan 20 at 12:48
From the ext3-faq: In order to ensure that ext3 can safely resume an unlink after a crash, it actually zeros out the block pointers in the inode, whereas ext2 just marks these blocks as unused in the block bitmaps and marks the inode as "deleted" and leaves the block pointers alone. Your only hope is to "grep" for parts of your files that have been deleted and hope for the best. batleth.sapienti-sat.org/projects/FAQs/ext3-faq.html – Rolf Rander Jan 20 at 12:53
Thanks Rolf, I did see that FAQ but also the ext3grep page referenced that exact same thing and seemed to have some luck anyway. I am studying their site but without much hope. – kswift Jan 20 at 15:16
I'm not sure how ext3grep works, but in general I guess you can find some blocks of the original file if you know what to look for. However, with a large database file, it will be distributed over many blocks, brobably not in a continous area, and you need to find all of them and assemble them in the right order to get a readable database. – Rolf Rander Jan 20 at 16:54
feedback

Know someone who can answer? Share a link to this question via email, Google+, Twitter, or Facebook.

Your Answer

 
or
required, but never shown

Browse other questions tagged or ask your own question.