From: | Jeff Davis <pgsql(at)j-davis(dot)com> |
---|---|
To: | Jameison Martin <jameisonb(at)yahoo(dot)com> |
Cc: | "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: xlog corruption |
Date: | 2012-03-14 22:55:53 |
Message-ID: | 1331765753.9791.16.camel@sussancws0025 |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Mon, 2012-02-27 at 16:30 -0800, Jameison Martin wrote:
> I'd like to get some clarification around an architectural point about
> recovery. I see that it is normal to see "unexpected pageaddr" errors
> during recovery because of the way Postgres overwrites old log files,
> and thus this is taken to be a normal termination condition, i.e. the
> end of the log (see
> http://doxygen.postgresql.org/xlog_8c.html#a0519e464bfaa79bde3e241e6cff986c7) My question is how does recovery distinguish between the actual end of the log as opposed to a log file corruption (e.g. torn page)?
>
>
> I'd like to be able to distinguish between a corruption in the log vs.
> a normal recovery condition if possible.
If you have a power failure, a torn page in the WAL is expected. Torn
pages in the data pages are fixed up using WAL; but WAL doesn't have
anything under it to prevent/fix torn pages (unless your filesystem
prevents them).
Of course, checksums are used to prevent recovery from attempting to
play a partial or otherwise corrupt WAL record.
What kind of corruption are you trying to detect?
Regards,
Jeff Davis
From | Date | Subject | |
---|---|---|---|
Next Message | Mark Phillips | 2012-03-15 00:47:21 | copy in date string "00-00-00 00:00:00" |
Previous Message | Daniel Vázquez | 2012-03-14 22:21:47 | Re: Searching email, Full Text Search prefix, not expected results |