Re: zero_damaged_pages doesn't work - Mailing list pgsql-general

From Jeff Davis
Subject Re: zero_damaged_pages doesn't work
Date
Msg-id 1285627228.32386.5.camel@jdavis-ux.asterdata.local
Whole thread Raw
In response to zero_damaged_pages doesn't work  (David Boreham <david_list@boreham.org>)
Responses Re: zero_damaged_pages doesn't work  (David Boreham <david_list@boreham.org>)
List pgsql-general
On Mon, 2010-09-27 at 15:07 -0600, David Boreham wrote:
> Is the zero_damaged_pages feature expected to work in 8.3.11 ?
>
> I have a fair bit of evidence that it doesn't (you get nice messages
> in saying that the page is being zeroed, but the on-disk data does not
> change).
> I also see quite a few folk reporting similar findings in various form
> and mailing list posts over the past few years.
>
> I can use dd to zero the on-disk data, but it'd be nice to know
> definitively if this feature is expected to work, and if so under
> what conditions it might not.

It does zero the page in the buffer, but I don't think it marks it as
dirty. So, it never really makes it to disk as all-zeros.

> fwiw I am enabling zero_damaged_pages using a set command
> in a client session, not in the server's config file. The symptoms
> I observe are that a query that previously errored out due to
> a bad page header error will succeed when zero_damaged_pages
> is enabled, the log says that the page is being zeroed.
> However the same query run subsequently without zero_damaged_pages
> will again fail, and pg_filedump shows that the on-disk data
> hasn't changed.

The subsequent queries may succeed if the page is still in the buffer
cache.

zero_damaged_pages is not meant as a recovery tool. It's meant to allow
you to pg_dump whatever data is not damaged, so that you can restore
into a fresh location.

Regards,
    Jeff Davis


pgsql-general by date:

Previous
From: David Boreham
Date:
Subject: zero_damaged_pages doesn't work
Next
From: "Larry Leszczynski"
Date:
Subject: PostgreSQL 9 Mac OS X one-click install - PL/perl broken