Re: [ADMIN] Would like to below scenario is possible for getting page/block corruption

From: Shreeyansh Dba <shreeyansh2014(at)gmail(dot)com>
To: Sreekanth Palluru <sree4pg(at)gmail(dot)com>
Cc: "pgsql-admin(at)postgresql(dot)org" <pgsql-admin(at)postgresql(dot)org>, pgsql-general(at)postgresql(dot)org
Subject: Re: [ADMIN] Would like to below scenario is possible for getting page/block corruption
Date: 2016-12-09 09:56:14
Message-ID: CAGDYbUOHbG6Mh+fe9nn9P_7NtNhajyiYorJONpJ6aOkDJBBi7w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin pgsql-general

Hi Sreekanth,

I doubt auto-recover of the page might be possible, as the header of the
page is no more valid & corrupted and not sure whether the corruption
occurred in relation of a data or index block.

We have seen some occurrences like this before which got rectified by
performing reindexing and vacuum full operations on index or entire table.

If the corrupted relation is a data block & reindexing didn't help, based
on your current backup strategy, logical (pg)dump/restore) or PITR may
help in recovering from corruption problems provided having in tact valid
backups before you faced this error.

Hope this helps you in getting required solution.

Please feel free to reach us if you have any queries.

On Fri, Dec 9, 2016 at 6:16 AM, Sreekanth Palluru <sree4pg(at)gmail(dot)com> wrote:

> Hi ,
> I am working on page corruption issue want to know if below scenario is
> possible
>
> 1) Insert command from client , I understand heap_insert is called
> from heampam.c
> 2) Let us say table is full and relation is extended and added a new block
> 3) Tuple is inserted into new page for the block RelationPutHeapTuple/
> hio.c
> 4) Later WAL record is inserted through recptr = XLogInsert(RM_HEAP_ID,
> info);
> 5) Then backend update the PageHeader with WAL LSN details
> PageSetLSN(page, recptr);
>
> If my server got crashed after step 4) is there a possibility that after
> postgres database restart I get below error when I access the relation or
> vacuum is run on this relation or taking backup through pg_dump ?
> *ERROR: invalid page header in block 204 of relation base/16413/16900 ?*
>
> or
> Postgres can automatically recover the page without throwing any error ?
>
> Appreciate your valuable response on this
>
> --
> Regards
> Sreekanth
>

--

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Ray Stell 2016-12-09 15:20:09 change PID/GID
Previous Message Sreekanth Palluru 2016-12-09 03:21:32 Re: Would like to below scenario is possible for getting page/block corruption

Browse pgsql-general by date

  From Date Subject
Next Message Raymond O'Donnell 2016-12-09 10:42:10 Re: How to loop through multi-dimentional array in PL/PGSQL
Previous Message Johann Spies 2016-12-09 08:55:12 Re: After upgrade to 9.6: waiting column does not exist