views:

215

answers:

2

I've been asked to look at a SQL 2005 database that is reporting 'torn page' errors.

I can look up the MsgIDs and so on, but I just need a few pointers interpreting the DBCC CHECKDB output in a more general sense.

In this sample:

Msg 8909, Level 16, State 1, Line 1
Table error: Object ID 0, index ID -1, partition ID 0, alloc unit ID 8795506764168298496 (type Unknown), page ID (1:106887) contains an incorrect page ID in its page header. The PageId in the page header = (1041:-523272204).
Msg 8939, Level 16, State 98, Line 1
Table error: Object ID 0, index ID -1, partition ID 0, alloc unit ID 8971733407675449344 (type Unknown), page (0:0). Test (IS_OFF (BUF_IOERR, pBUF->bstat)) failed. Values are 62916617 and -4.
CHECKDB found 0 allocation errors and 37 consistency errors not associated with any single object.

... apparently the errors are not related to any single object (note that ObjectID and IndexID dont have proper values). What does that mean exactly? If its not a single object then what is it?

In this sample:

Msg 8939, Level 16, State 98, Line 1
Table error: Object ID 69575286, index ID 1, partition ID 286034662653952, alloc unit ID 286034662653952 (type In-row data), page (1:207727). Test (IS_OFF (BUF_IOERR, pBUF->bstat)) failed. Values are 62916617 and -1.
Msg 8964, Level 16, State 1, Line 1
Table error: Object ID 69575286, index ID 1, partition ID 286034662653952, alloc unit ID 71780678747160576 (type LOB data). The off-row data node at page (1:443), slot 26, text ID 1509706039296 is not referenced.

... is it referring to pages that contain data, or pages that contain indexes? It mentions off-row data but it also gives and Index ID. What do Index ID values 0 and 1 signify?

This is to help out a charity, by the way, so any help greatly appreciated. Thanks.

PS: I'm not on site yet, just looking through the dbcc logs they sent me, so I can't do any tinkering yet.

Edit: Its SQL 2005 v 9.0.3042

Edit: Lets say, you know, hypothetically, that restoring backups might not be an option because the torn pages have been in the database for a couple of months, due to a third party not putting the maintenance plans back in place after a server switch, or some such scenario. Hence assume that investigating the errors and trying to fix them or isolate them is the only course of action.

+1  A: 

Paul Randall has pretty much every answer you'll ever need.

However, in practice, you should be thinking "restore" already...

gbn
thanks for the link, looks very useful
codeulike
YOu're welcome. I should have added: if you can't restore, read is "repair myths" article...
gbn
+1  A: 

I speak from experience here...

There error means that your database is damaged.

I would restore the latest backup you have that doesn't have this error, and use it.

You can run DBCC to repair the damage, but there's a fair chance you'll lose data. I don't recommend doing this though, because the 'restore/repair' might seem to work but doesn't.

Jay Riggs