Hackers,

I have been talking with Robert about table corruption that occurs from time to 
time. The page checksum feature seems sufficient to detect most random 
corruption problems, but it can't detect "logical" corruption, where the page 
is valid but inconsistent with the rest of the database cluster. This can 
happen due to faulty or ill-conceived backup and restore tools, or bad storage, 
or user error, or bugs in the server itself. (Also, not everyone enables 
checksums.)

The attached module provides the means to scan a relation and sanity check it. 
Currently, it checks xmin and xmax values against relfrozenxid and relminmxid, 
and also validates TOAST pointers. If people like this, it could be expanded to 
perform additional checks.

There was a prior v1 patch, discussed offlist with Robert, not posted.  Here is 
v2:

Attachment: v2-0001-Adding-heapcheck-contrib-module.patch
Description: Binary data


—
Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



Reply via email to