Fault Analysis

The following table lists by type code the common faults that dbcc checkstorage reports, and shows the techniques you can use to further evaluate these faults. The most common approach is to use object level dbcc commands, such as dbcc checktable, to understand and further investigate checkstorage faults. Where the Action/Follow-up column lists multiple options, these appear in the order of most preferable option first. Where the Action/Follow-up column lists an error number, see the writeup for the error in Chapter 3, “Error Message Writeups” for details.

Table 2-1: checkstorage fault analysis

checkstorage Type Code

Fault Description

Action/Follow-up

100000

Disk read failed

Check Sybase device

100001

Page ID errors such as page number out of range

Similar to 2523 Error

100002

pfreeoff field on header page has an invalid value

Similar to 2505 Error

100003

1. Allocation page in wrong location or location of an allocation page contains something else

2. Object ID reference error

dbcc checktable, dbcc tablealloc, dbcc checkalloc

Similar to 2529 Error

dbcc checktable, dbcc tablealloc, dbcc checkalloc

Similar to 1133, 2522, 2540 Errors

100006

Object allocation error

dbcc tablealloc

Similar to 2522, 2525 Errors

100008

Incorrect page status bit in page header

dbcc checktable

Similar to 7948 Error

100009

Column/row size error, or other row format error

dbcc checktable

Similar to 2506, 2507, 2508 Errors

100010

Row location error

dbcc checktable

Similar to 2509 Error

100014

Page referenced by more than one object

Similar to 2502 Error

100015

Page referenced more than once for an object

Similar to 2502 Error

100016

Page allocated but not linked

dbcc checktable

Similar to 2540 Error

100017

Fault encountered on Object Allocation Map (OAM) page linkage

Similar to 2502 Error

100018

Allocation is not recorded in the Object Allocation Map (OAM)

dbcc indexalloc, dbcc tablealloc, dbcc checkalloc

Similar to 7939 Error

100021

Fault encountered on last page of object chain

dbcc checktable

Similar to 2575, 9924 Errors

100022

Fault encountered on first page of object chain

dbcc checktable

Similar to 2577, 2578 Errors

100023

Object Allocation Map (OAM) count error

dbcc indexalloc, dbcc tablealloc, dbcc checkalloc

Similar to 7940, 7949 Errors

100024

Object Allocation Map (OAM) count error

dbcc indexalloc, dbcc tablealloc, dbcc checkalloc

Similar to 7940, 7949 Errors

100026

Serial allocation rule violation

Similar to 7989 Error

100027

Text chain has bad root page number

Similar to 2523 Error

100028

A page of the object was found in a location other than where allocations are currently allowed

Activate Trace Flag 2513 AND run:

dbcc indexalloc, dbcc tablealloc, or dbcc checkalloc

Similar to 2558 Error

100029

Control page: pprevpg or pnextpg non-zero

Similar to 2577 Error

100029

Data/text page: next page value non-zero on last page

dbcc checktable

Similar to 2575 Error

100029

Data/text page: previous page value non-zero on first page

dbcc checktable

Similar to 2578 Error

100031

Link check: referenced page is not allocated, or is allocated to a different object

dbcc tablealloc, dbcc checkalloc

Similar to 2521, 2522 Errors

100032

Link check: pprevpg or pnextpg is inconsistent with page reference

Similar to 2503 Error

100033

Invalid or inconsistent value for the non-contiguous free space on the page.

reorg.

Similar to 9988, 9993

100034

Invalid or inconsistent value for the contiguous free space on the page.

reorg.

Similar to 9990, 9995

100035

Inconsistency in the page fullness indicator.

reorg. Similar to 12916.

100036

Invalid or inconsistent value for the deleted row count on the page.

reorg. Similar to 9989, 9994.

100037

Inconsistency between the forwarded rows indicator and the number of forwarded rows on the page.

reorg.

100038

Page header format indicator set incorrectly.

reorg; may require drop/recreate table.

The following checkstorage faults do not correspond to any existing dbcc errors:

Table 2-2: checkstorage faults that do not map to dbcc errors

checkstorage Type Code

Fault Description

100004

Pages with a timestamp in the future.

100005

Pages from the wrong database.

100007

Extent ID - pages allocated to a non-existent object. checkalloc with the fix option can correct this error.

100011

Text pointer - a corrupt text/image value for a table row/column. Look for other faults to determine the nature of the problem.

100012

Page status bits for the page show page type is different from the page chain being examined.

100019

Extra Object Allocation Map (OAM) Entry.

Similar to 7940, 7949 Errors. checkalloc or tablealloc with the fix option can correct this error.

100025

Row count or rows per page error in Object Allocation Map (OAM). checktable corrects this error.

100029

1) index page only flag incorrectly set on a data page. Creating a clustered index or bulk copying data out and back in can correct this error. 2) poffset does not match the contents of the page. 3) plastrowoff is not the offset of the last row on an index page. 4) Out of range values in OAM page header fields.

Many 100029 faults can be corrected by bulk copying data out and back in.

100030

Page formatting requirements for pages other than data and index. Checks depend on page type. OAM page: entries are for allocation pages and total of used+unused is less than 255. Control page: first or last page is invalid for database; the affinity table is corrupt. Text page: timestamps on the first page are invalid or inconsistent. Allocation page: extent on allocation page is not correctly allocated and is not free for allocation (similar to 2525 error).

checkstorage “soft” faults may or may not reflect actual corruption. Use dbcc checkverify to see if the faults are indeed hard errors.