Home All Groups Group Topic Archive Search About

DBCC Checkdb's torn page / checksum validation



Author
3 Dec 2008 8:14 PM
abair34
If you have a database who's page verify option is set to none does
performing a DBCC CHECKDB actually do any page verification?  My intuition
says that it cannot because the pages that were stored would have been stored
without any torn page bits or checksum.  Can anyone verify this for me?

-Mike

Author
4 Dec 2008 9:10 AM
Tibor Karaszi
It depends on what you mean by "verification". For such cases, checkdb
can't verify torn pages or checksum since they don't exist. But there
are bunch of other types of verifications that checkdb does. Does the
page below to the correct table/index as indicated by the IAM page,
does it point back to the preceding page (index linked list), etc.
Those kind of things.

Show quoteHide quote
"abair34" <abai***@discussions.microsoft.com> wrote in message
news:B2270566-5262-4ADF-94A9-A4A4DC77A3A0@microsoft.com...
> If you have a database who's page verify option is set to none does
> performing a DBCC CHECKDB actually do any page verification?  My
> intuition
> says that it cannot because the pages that were stored would have
> been stored
> without any torn page bits or checksum.  Can anyone verify this for
> me?
>
> -Mike
Are all your drivers up to date? click for free checkup

Author
5 Dec 2008 8:02 PM
Michael A.
Thanks Tibor!  I was speaking of torn page verification.  I also emailed
Paul Randal and he agreed and wrote the following.  (I'll append it in case
if anyone else has similiar questions).  With this information it makes it
apparent that turning off checksum or torn_page verification is a bad idea.
I don't think that BOL does a good job of describing what happen when you
turn off page_verification on a database.  It should better explain the fact
that turning it on after the fact does not offer any protection until the
pages are written back to disk, and that running a DBCC CHECKDB will not
find corruptions in the middle of the data portion of a torn page if
verification is turned off.

-------------------------------------

You're right - if torn-page or checksum isn't turned on then there's nothing
that can be detected as far as page protection options are concerned.
CHECKDB may still pick up on corruptions that it finds from doing all the
consistency checks that it does - but it won't see corruptions in the middle
of data values, for instance.

Ha - that's the bummer about turning on page checksums - nothing happens
until a page is read in, changed, and written back out. The only way to
force pages to get checksums is to make them change - e.g. through
rebuilding all your indexes, whcih may be unpalatable - there's no 'touch'
tool out there at all.

Cheers

Paul S. Randal
Managing Director, www.SQLskills.com
http://www.sqlskills.com/blogs/paul

--------------------------

With a database that has never had any page verification turned on, do our
weekly DBCC CHECKDB’s actually have any means of checking for torn pages?
From what I gather the tornbits / checksum is calculated on the write and if
these db’s have never had it turned on then they have never been written to
disk.  Therefore when the CHECKDB run’s, it would have no means of verifying
if the page is torn or not if the checksum/tornbits data is not available.

If I want to turn on checksum or torn_page verification is there any way
that I can “touch” those pages to force a checksum or torn_page calc?


Show quoteHide quote
"Tibor Karaszi" <tibor_please.no.email_kara***@hotmail.nomail.com> wrote in
message news:u8Fg1AfVJHA.1224@TK2MSFTNGP04.phx.gbl...
> It depends on what you mean by "verification". For such cases, checkdb
> can't verify torn pages or checksum since they don't exist. But there are
> bunch of other types of verifications that checkdb does. Does the page
> below to the correct table/index as indicated by the IAM page, does it
> point back to the preceding page (index linked list), etc. Those kind of
> things.
>
> --
> Tibor Karaszi, SQL Server MVP
> http://www.karaszi.com/sqlserver/default.asp
> http://sqlblog.com/blogs/tibor_karaszi
>
>
> "abair34" <abai***@discussions.microsoft.com> wrote in message
> news:B2270566-5262-4ADF-94A9-A4A4DC77A3A0@microsoft.com...
>> If you have a database who's page verify option is set to none does
>> performing a DBCC CHECKDB actually do any page verification?  My
>> intuition
>> says that it cannot because the pages that were stored would have been
>> stored
>> without any torn page bits or checksum.  Can anyone verify this for me?
>>
>> -Mike
>

Bookmark and Share