One of those services that I offer is on call help for DBA’s who encounter database corruption. Call me anytime 24/7 and as long as you are an existing customer, or we can work out a billing arrangement to turn you into a paying customer, I can help.
That’s all a good if you are familiar with what database corruption is. But based on the occasional phone call that I receive based on my outreach to help with database corruption, it makes me think that I haven’t done the best job describing what corruption is.
A few minutes ago at 12:15am, my phone rings, I was sound asleep but it woke me up and I answered it. Still a bit groggy I hear a voice on the other end asking “Are you the one who can help with database corruption removal?” to which I answer yes. He then goes into a story about how he has just been fingerprinted and he wasn’t supposed to be arrested. He goes on to describe how he didn’t feel that he should have been arrested, but the police officers have told him that now that his fingerprints are in the database, there isn’t anything they can do to undo it. I break in with “sorry that’s not the type of work I do”, and he continues to request my help to to get his fingerprints out of the database and remove his arrest record. I end the call, and hope that this wasn’t his one phone call that he is allowed when he was being booked.
Just to be crystal clear… That’s not the type of work that I do.
I get calls like this about every 2 months, usually about some type of corruption in the legal system, or an accusation of a corrupt judge. This lead me to think, that perhaps if there is this type of misunderstanding of what database corruption repair or removal is that perhaps some or the SQL Server family out there may not understand exactly what it is either.
So that leads me into a short description of what database corruption is. Database corruption is generally caused by I/O issues, and it shows up as some part of your data file that is incorrectly written due to I/O issues. The problem comes when SQL Server attempts to read from that file, it fails in a number of ways. It can fail when a page is being read, or when SQL Server is starting up, or perhaps when a query is being run, or an index being rebuilt. Basically the database file has a certain structure, with checks and if the data in the file doesn’t conform to what SQL Server is expecting to read then it causes a failure of some kind.
If you have ever opened a .jpg or .png file in notepad you end up with just a bunch of garbage in notepad that looks nothing like an image, and nothing like a text file. That can be how data pages look to SQL Server when a single byte, or a vast amount of information is corrupt.
You can encounter database corruption when you are running a query, restarting SQL Server, proactively running DBCC CheckDB, or several other less fortunate ways.
What database corruption repair involves is fixing that corrupt file, or at least extracting all the data from the file that can be saved, sometimes it involves using backups, or pulling some data from your backups, and rebuilding those corrupt pages.
So if you need help with a corrupt database, give me a call, I can help. If this is your one call that you are allowed as you are being arrested, I am not the one to help you out.