CheckDB Errors and weird fix

  • Hi all

    Well just had a hell of a day today.

    9am, get a developer telling me his query analyser connections to prod (read only) are "disconnecting" on him. I track it down and its due to selected tables. When I try returning all rows query analyser flashes up day 100 of the 33,000 and then I get a disconnection message (ill post the actual messages later).

    I ran checkdb on the db and sure enough, this table and other are reporting pointer issues, text blob problems etc..

    I ran a number of times, BUT, each time I get different results, some errors are repeated, but others are completely different, one minute fine, run it again, they are being reported as corrupt!

    Kicked all users off, did a full backup of the db (no problems). Set single user mode, ran checkdb again, same sort of issues, ran again with repair command. Fixed most errors (the ones that seemed to come a go!) the rest was a complete no go. THis also generated a heap of DMP files.

    We tested the previous backups on different servers, some later ones restored ok, but checkdb reported errors. I restored the db from the backups as "cktest", ran check db, all ok, and progressed through the logs. I did hit a point where checkdb then reported corruption errors. BUT, I restored again then all was ok??? (weird).

    Finally, after ensuring we were fully prepared for a major system recovery and/or rebuild, we rebooted the server. Once up, ran checkdb and guess what, no checkdb errors, no errors in the logs, everything perfect!! (i think). I cant repeat the errors, no matter what I try.

    Running ss2k ee with sp3, very quick compaq servers (may be afflicted with the fast-disk io error reported by MS support).

    BTW, I am dealing with MS Support but they said they are too busy and they needed to go home for the day so I have to wait 24hrs. Complete rubbish coming from an Oracle support worlds where UK support teams take over!

    Cheers

    Chris K


    Chris Kempster
    www.chriskempster.com
    Author of "SQL Server Backup, Recovery & Troubleshooting"
    Author of "SQL Server 2k for the Oracle DBA"

  • Sorry to hear that Chris, hate days like that.

    I can't believe MS left you hanging. I've had a few calls that ran over 24 hours and I was transferred from Dallas to Seattle to Charlotte through the night and next day to new technicians. Is the ticket sitting at a Sev 1? Do you have an MS account contact?

    Steve Jones

    sjones@sqlservercentral.com

    http://www.sqlservercentral.com/columnists/sjones

    http://www.dkranch.net

  • Hi Steve

    It was via our partner#, I think its MS Professional Services and not enterprise which offers the 24x7 (from reading their site). I didnt winge too much with the MSS person allocated to me, just in case I was brushed aside completely 🙂

    Cheers

    Ck


    Chris Kempster
    www.chriskempster.com
    Author of "SQL Server Backup, Recovery & Troubleshooting"
    Author of "SQL Server 2k for the Oracle DBA"

  • Exactly what was your DBCC syntax while trying to repair the errors?


    David R Buckingham, MCDBA,MCSA,MCP

  • Hi there

    I kicked all users

    Put DB into single user mode..

    dbcc checkdb('corpsys', REPAIR_REBUILD) with ALL_ERRORMSGS

    We had repeated errors over some objects, each run produced a range of user dumps. The weird bit was a subsequent run produced different errors over objects that were previously fine?? all very confusing.

    After doing all we could to ensure the server and the db instance would re-start (and we could fully recover again), a simple reboot saw the instance and the db come up fine with no errors.

    Cheers

    Ck


    Chris Kempster
    www.chriskempster.com
    Author of "SQL Server Backup, Recovery & Troubleshooting"
    Author of "SQL Server 2k for the Oracle DBA"

  • Very long shot, maybe way of target.

    Any possibility of hardware problems, new disk controllers, display adapter, etc. ?

  • DBCC CHECKDB with the REPAIR_REBUILD does not repair all possible problems, such as correcting allocation errors, structural row or page errors, and deletion of corrupted text objects. For those errors to be "corrected" you must use DBCC CHECKDB with the REPAIR_ALLOW_DATA_LOSS option.

    The following is from Books On-Line regarding this repair option:

    The repair may be done under a user transaction to allow the user to roll back the changes made. If repairs are rolled back, the database will still contain errors and should be restored from a backup.

    It has also been my experience that the command may need to be run several times until no errors are reported.


    David R Buckingham, MCDBA,MCSA,MCP

Viewing 7 posts - 1 through 6 (of 6 total)

You must be logged in to reply to this topic. Login to reply