Discussion:
What kinds of errors does dbcc checkstorage/verify *not* catch?
(too old to reply)
bslade
2010-06-21 21:33:40 UTC
Permalink
On ASE 12.5.4 ESD#7, we've had an issue where dbcc checkstorage did
not find a corrupt text field page chain. After getting a run time
error, we ran dbcc checkdb and got a bunch of errors like:

-- Msg 12953... Invalid external st-node first text page value XXXXX
stored in first text page YYYYY
-- Msg 7951... Data size mismatch occurred while checking a TEXT
value....

Eventually, we were able to use dbcc rebuild_text to fix the problem.

But this raises the question: what kinds of errors does dbcc
checkstorage miss and is it necessary for us to run dbcc checkdb/
checktable and dbcc checkalloc on a regular basis?

There's a summary level table listing high level differences between
dbcc check commands at:

http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.ase_15.0.sag2/html/sag2/sag2296.htm

But that doesn't have the level of detail I'm looking for. There's
also:

http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.ase_15.0.sag2/html/sag2/sag2299.htm

which says:

"dbcc checkstorage and dbcc checkcatalog provide the best coverage at
the lowest cost, and assure recovery from backups. You can run dbcc
checkdb or dbcc checktable less frequently to check index sort order
and consistency."

So it sounds like dbcc checkstorage doesn't check index consistency?

For those of you with Sybase support accounts, there's solved case
11317965 (from 2007, for ASE 12.5.2) which says "Make dbcc
checkstorage validate index entries; currently clients have to run
checkdb and checkstorage to get a complete integrity check." But the
case refers to non-existant tech feature requests.

So, does anybody know of any sources of inforamtion about detailed
levels of error coverage for dbcc checkstorage versus other dbcc check
commands?

Thanks in advance
Ben Slade
DBA @ NCBI.NLM.NIH.gov
cmcc
2010-06-21 22:04:35 UTC
Permalink
dbcc checkstorage was designed and implemented back in ASE 11.5 with
the intention of being a complete replacement for dbcc checkdb and
dbcc checkalloc. The exact checks of checkstorage vs. checkdb /
checkalloc do not line up for this reason. I do not know the answer to
your question about specific checks off the top of my head, but I do
know the intent of the dbcc checkstorage project. Therefore, I do not
believe it is necessary to ALSO run the old checkdb and checkalloc if
you have already used checkstorage. There will be some differences,
but checkstorage should be faster, less intrusive (and NO transient
errors) and overall a good replacement - at least in my opinion.

Good Luck,

Chris McCartney - Staff Technical Support Engineer - Sybase
Post by bslade
On ASE 12.5.4 ESD#7, we've had an issue where dbcc checkstorage did
not find a corrupt text field page chain.  After getting a run time
-- Msg 12953... Invalid external st-node first text page value XXXXX
stored in first text page YYYYY
-- Msg 7951...  Data size mismatch occurred while checking a TEXT
value....
Eventually, we were able to use dbcc rebuild_text to fix the problem.
But this raises the question: what kinds of errors does dbcc
checkstorage miss and is it necessary for us to run dbcc checkdb/
checktable and dbcc checkalloc on a regular basis?
There's a summary level table listing high level differences between
 http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.as...
But that doesn't have the level of detail I'm looking for.  There's
 http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.as...
"dbcc checkstorage and dbcc checkcatalog provide the best coverage at
the lowest cost, and assure recovery from backups. You can run dbcc
checkdb or dbcc checktable less frequently to check index sort order
and consistency."
So it sounds like dbcc checkstorage doesn't check index consistency?
For those of you with Sybase support accounts, there's solved case
11317965 (from 2007, for ASE 12.5.2) which says "Make dbcc
checkstorage validate index entries; currently clients have to run
checkdb and checkstorage to get a complete integrity check."   But the
case refers to non-existant tech feature requests.
So, does anybody know of any sources of inforamtion about detailed
levels of error coverage for dbcc checkstorage versus other dbcc check
commands?
Thanks in advance
Ben Slade
bslade
2010-06-22 14:43:05 UTC
Permalink
Post by cmcc
dbcc checkstorage was designed and implemented back in ASE 11.5 with
the intention of being a complete replacement for dbcc checkdb and
dbcc checkalloc. The exact checks of checkstorage vs. checkdb /
checkalloc do not line up for this reason. I do not know the answer to
your question about specific checks off the top of my head, but I do
know the intent of the dbcc checkstorage project. Therefore, I do not
believe it is necessary to ALSO run the old checkdb and checkalloc if
you have already used checkstorage. There will be some differences,
but checkstorage should be faster, less intrusive (and NO transient
errors) and overall a good replacement - at least in my opinion.
Good Luck,
Chris McCartney - Staff Technical Support Engineer - Sybase
Ok, thanks Chris. I think we'll continue to use dbcc checkstorage/
verify as our main online db consistency checking tool, but every few
months we'll also run checkdb/checkalloc against offline copies of our
key production databases. If, after a while, the extra checkdb/
checkalloc operations don't catch any extra errors, we'll stop running
them.

Thanks
Ben Slade
DBA @ NCBI.NLM.NIH.gov

Loading...