Take the 2-minute tour ×
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

EDIT: After much research the page at issue does not track any data pages. I still have a the question, but since I can safely fix the issue with out any data loss it is more of a learning question than any thing else now.

I received a Fatal error 823 due to an incorrect checksum in tempdb.mdf. This can be a hard drive error (and create corruption) so I ran DBCC CHECKDB on all my databases (on restores of last nights backups at least on a different server) and one of the databases returned the following issue:

Msg 2576, Level 16, State 1, Line 1
The Index Allocation Map (IAM) page (0:0) is pointed to by the previous pointer of IAM page (1:330) in object ID 0, index ID -1, partition ID 0, alloc unit ID 72057594044612608 (type Unknown), but it was not detected in the scan.

I have looked online about the error and normally there is a non-zero object ID for the object with the issue. This is a very small database (60 MB) and since the app that uses it has been chugging for at least a week (went back to my oldest backup and the issue was there) the corruption is not a big issue its self (will still get addressed and hopefully be ammo for better maintenance procedures).

On my backup running DBCC CHECKDB('DBName',REPAIR_ALLOW_DATA_LOSS) fixes the issue with no apparent data loss but since this requires single user mode and down time I want to be sure it's the right thing and that I understand what the error message is saying before I risk possible data loss (and a late night).

The 823 read error is being addressed by a different team.

EDIT: So I used DBCC PAGE to get a dump of the page indicated and here it is

Still cant really make much sense of it.

PAGE HEADER:

Page @0x00000007B0A4C000

m_pageId = (1:330) m_headerVersion = 1
m_type = 10 m_typeFlagBits = 0x0 m_level = 0
m_flagBits = 0x200 m_objId (AllocUnitId.idObj) = 102 m_indexId (AllocUnitId.idInd) = 256 Metadata: AllocUnitId = 72057594044612608 Metadata: PartitionId = 0 Metadata: IndexId = -1
Metadata: ObjectId = 0 m_prevPage = (0:0) m_nextPage = (0:0) pminlen = 90 m_slotCnt = 2 m_freeCnt = 6 m_freeData = 8182 m_reservedCnt = 0 m_lsn = (809:1098:42) m_xactReserved = 0 m_xdesId = (0:0) m_ghostRecCnt = 0 m_tornBits = 703344359

Allocation Status

GAM (1:2) = ALLOCATED SGAM (1:3) = ALLOCATED
PFS (1:1) = 0x70 IAM_PG MIXED_EXT ALLOCATED 0_PCT_FULL
DIFF (1:6) = NOT CHANGED ML (1:7) = NOT MIN_LOGGED

IAM: Header @0x000000002007A064 Slot 0, Offset 96

sequenceNumber = 0 status = 0x0
objectId = 0 indexId = 0 page_count = 0
start_pg = (1:0)

IAM: Single Page Allocations @0x000000002007A08E

Slot 0 = (0:0) Slot 1 = (0:0)
Slot 2 = (0:0) Slot 3 = (0:0) Slot 4 = (0:0)
Slot 5 = (0:0) Slot 6 = (0:0) Slot 7 = (0:0)

IAM: Extent Alloc Status Slot 1 @0x000000002007A0C2

(1:0) - (1:6392) = NOT ALLOCATED

share|improve this question
    
Have you tried one of the other two repair options? –  Sebastian Meine Oct 15 '13 at 22:12
    
Its not so much actually making the repair as understanding the message. The real question is what is object ID 0 since nothing exists in sys.objects for that object ID. And since any repair would need to be made overnight during the maintenance window it means a late night for me any way. –  Wind Raven Oct 15 '13 at 22:25
    
It seems that page 1:330 cannot be trusted. Page 0:0 can never be an IAM page, so 1:330 contains garbage at least in that field. Object_id 0 cannot be a correct number either, so I assume somehow an otherwise empty page got a few random bits set and checkdb now thinks it is an IAM page. –  Sebastian Meine Oct 16 '13 at 1:09
    
Well after lots more digging I came across sqlskills.com/blogs/paul/… so i pulled the page (1:330) with DBCC PAGE. Edited the question to include the results. –  Wind Raven Oct 16 '13 at 16:08
    
still looks mostly empty to me. –  Sebastian Meine Oct 16 '13 at 17:06
show 1 more comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.