October 20, 2014

Friday challenge: ibd recovery

I want to make this Friday a bit more interesting – how do you feel to train a bit in InnoDB data recovery techniques.
I have .ibd datafile which was created by query
CREATE TABLE `tryme` ( `email` mediumblob, `content` mediumblob ) ENGINE=InnoDB … (SOME PARAMETERS SKIPPED) …;

and I inserted one record into this table with email address and English sentence into field (content). Some transformation where applied to both fields so just HEX viewer may not help you there.
Size of meaningful de-transformed content is
length( … (content) … ) = 15.

Can you recovery both email and content fields ? To add some competition I want to give a prize for winner, first who sends content (meaningful English sentence) to given email – will receive our book “High Performance MySQL” 2nd edition, or if he has already this book or just hate it by some reason – I can propose Amazon 25$ Gift Card as replacement.

File tryme.ibd you can download here http://percona.com/blog/files/contest/tryme.ibd. Size 65536 bytes. md5sum a53d3ee3f3a33854f21b5f550ae53e18.

About Vadim Tkachenko

Vadim leads Percona's development group, which produces Percona Clould Tools, the Percona Server, Percona XraDB Cluster and Percona XtraBackup. He is an expert in solid-state storage, and has helped many hardware and software providers succeed in the MySQL market.

Comments

  1. Ravenheart says:

    Forbidden

    You don’t have permission to access /files/contest/tryme.ibd on this server.

  2. Vadim says:

    fixed

  3. Gavin Towey says:

    Yar, have the data, but now I need to figure out what transformation you applied to it =) Fun contest!

  4. Gavin Towey says:

    Success!

    Well, I finally figured out what the tricksy obfusication. Thankfully I don’t think any real databases would apply transformations like that without them being known when you’re trying to recover data.

    I’m curious if this scenario is based on an actual client experience.

    Thanks to Vadim for putting this together and offering the incentive. I knew *about* innodb recovery techiniqes before, but thankfully have never had to use them. This was an excellent practice exercise, and I highly recommend everyone try to solve it since it will require you to learn a few tricks and skills that will really come in handy if you ever *have* to do it. I thought I knew innodb pretty well before, but I found that there is always much more to learn.

  5. Vadim says:

    Gavin,

    Congratulation! :)

    The scenario if fully valid (if exclude transformation, that does not happen so often). May be not all steps you made, but that or another part is used for for real data recovery.

  6. Olivier says:

    Hi,
    I unfortunately tried to get data … Could you publish the solution ?

  7. Vadim says:

    Answer is posted here
    http://www.percona.tv/?p=13

Speak Your Mind

*