Skip to content

Database Corruption Challenge

Neil Abrahams Interview – Database Corruption Challenge

After 10 weeks (or almost weekly) of corrupt databases, missing data and a challenging competition the Database Corruption Challenge finally comes to an end. As part of the last week of the challenge I created a short blog interview for the participants. This interview is Neil Abrahams.NeilAbrahams

Neil placed in third place with a 3 way tie for third overall in the the Database Corruption Challenge scoring 21 points. He was one of only 3 participants to complete all 10 challenges in the contest, the other two were André Kamman and Rob Farley.

Here are the overall statistics for Neil in the Database Corruption Challenge

Read More »Neil Abrahams Interview – Database Corruption Challenge

André Kamman Interview – Database Corruption Challenge

After 10 weeks (or almost weekly) of corrupt databases, missing data and a challenging competition the Database Corruption Challenge, finally comes to an end. As part of the last week of the challenge I created a short blog interview for the participants. This interview is André Kamman.

André placed second overall in the the Database Corruption Challenge scoring 22 points which pushed hiAndreKammanm above a 3 way tie for third place. He was one of only 3 participants to complete all 10 challenges in the contest, the other two were Rob Farley and Neil Abrahams.

Here are the overall statistics for André in the Database Corruption Challenge

Read More »André Kamman Interview – Database Corruption Challenge

Raul Gonzalez Interview – Database Corruption Challenge

After 10 weeks (or almost weekly) of corrupt databases, missing data and a challenging competition the Database Corruption Challenge, finally comes to an end. As part of the last week of the challenge I created a short blog interview for the participants. This interview is with Raul Gonzalez.

Raul placed third (in a tie) overall in the Database Corruption Challenge behind Rob Farley, and André Kamman. Raul Gonzalez Interview

Here are the statistics for Raul in the Database Corruption Challenge

Raul Gonzalez Interview

Read More »Raul Gonzalez Interview – Database Corruption Challenge

Rob Farley Interview – Database Corruption Challenge

After 10 weeks (or almost weekly) of corrupt databases, missing data and a challenging competition the Database Corruption Challenge, finally comes to an end. As part of the last week of the challenge I created a short blog interview for the participants.Rob Farley Interview

Rob Farley is the overall winner, the champion of the Database Corruption Challenge scoring more points than anyone else.  Congratulations Rob!

Rob was one of only 3 participants to complete all 10 challenges in the contest, the other two were André Kamman and Neil Abrahams.

Here are Robs statistics for the Database Corruption Challenge

Read More »Rob Farley Interview – Database Corruption Challenge

Announcing the Database Corruption Challenge Winners

Today I am proud to announce that the Database Corruption Challenge has come to an end. I would like to say that I have met some really great people during this contest and I look forward to seeing you at PASS Summit in October, or other conference someday.

The Corruption Challenge Winners

Grand Champion - Rob FarleyAfter 10 competitions Rob Farley is the overall Champion of the Challenge with 25 points. Rob won week 2, Week 8 and Week 10. I will get the winning solution posted to my blog in the next day or two for those who are wondering how this weeks challenge was won.

 

 

 

 

Here is the list of the top scoring participants, the top 10 will receive a limited edition prize t-shirt as their badge of honor for being the top scoring participants:

 

Read More »Announcing the Database Corruption Challenge Winners

Database Corruption Challenge #10

Welcome to Week 10 of the Database Corruption Challenge. I have created a more corrupt, and perhaps more diabolical corruption scenario than previous weeks. This is the last week of 10 in the Database Corruption Challenge.

Here is how it works; I have created a corrupt database, then solved the corruption myself in order to prove that it is possible to fix, without data loss.

Database Corruption Challenge Details

There will be a total of 6 points available in this weeks challenge.

  • 1 point for being the first to solve the corruption challenge, and posting something about the corruption challenge on Twitter or LinkedIn. Please reference http://SteveStedman.com/Corruption in the post.
  • 1 point for having the solution right the first time you submit your solution.
  • 3 points for solving all the corruption with no data loss and providing the TSQL code (or other detailed steps) that was used to fix the corruption.
  • 1 point for completing the Blog Interview Questions. This does not have to be submitted with your solution, but it does need to be submitted by the end of the competition.

Read More »Database Corruption Challenge #10

Database Corruption Challenge #10 Grand Finale – Starts Friday

The Database Corruption Challenge – Grand FinaleCorruptionChallenge

The final challenge #10 in the Database Corruption Challenge starts this Friday (July 17th) at 6:00pm (Pacific Time).

After 9 other challenges we come to the final competition in this series. Many have competed, many have won, this is your chance to participate.

For those who have succeeded in all the other 9 Database Corruption Challenges you should not have a problem, however this will be the most complex corruption challenge yet.

Read More »Database Corruption Challenge #10 Grand Finale – Starts Friday

Database Corruption Challenge #9 – How I Corrupted the Database.

I was asked how I caused the corruption in Database Corruption Challenge #9. Here is how I did it.

To cause the corruption, I used the undocumented DBCC WritePage, however the same thing could have been accomplished by detaching the database, opening it with a hex editor, and then re-attaching the db.

DBCC WritePage

WARNING: DBCC WritePage is a dangerous command, that should never be used on any production database. It may invalidate your ability to get support from Microsoft on issues that arise with that database going forward. It is not my intention to encourage anyone to use DBCC WritePage ever. This is just what I used to create a corrupt database, and since creating corrupt databases is not part of the role of most DBAs, you should not use DBCC WritePage. Consider yourself warned.

Read More »Database Corruption Challenge #9 – How I Corrupted the Database.

Database Corruption Challenge #9 Complete

Database Corruption Challenge #9 has completed with 19 winning participants, you can take a look at the scoring page for exact details. The first to solve the challenge this week was Eduardo Rezende who provided the winning solution just 58 minutes after the challenge began. The second winning solution arrived less than a minute after the first, so it was a very close win for Eduardo. If you know Eduardo (or even if you don’t), take a moment to congratulate him on his win.

Thee was no additional clue provided this time, nobody asked for one and everyone who submitted a solution had the correct answer.

The corruption consisted of several corrupt pages in a nonClustered index, and two different tables with clustered indexes that had corruption. What was interesting about the corruption was that in the two clustered indexes, even though DBCC CheckDB or CheckTable show errors, it was still possible to use SELECT * FROM tablename and get all the results back. Which meant that the corruption could be fixed by selecting everything from the table, deleting the corrupt pages, and then putting the missing data back into the table. The challenge was that one of the tables had many other tables with foreign key constraints. Some solved it by dropping the foreign keys, truncating the table, then reinserting the data and recreating the foreign keys. Others solved it by using DBCC CheckTable with the REPAIR_ALLOW_DATA_LOSS option, then they just put the rows back that were missing.

Read More »Database Corruption Challenge #9 Complete