Re: Postgres will not start due to corrupt index

From: Robert Sosinski <rsosinski(at)ticketevolution(dot)com>
To: Merlin Moncure <mmoncure(at)gmail(dot)com>
Cc: pgsql-general(at)postgresql(dot)org, Spike Grobstein <spike(at)ticketevolution(dot)com>
Subject: Re: Postgres will not start due to corrupt index
Date: 2012-10-03 14:54:18
Message-ID: 611C01E7718A4425A3FB9CCEACCAEE52@ticketevolution.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hey Merlin,

Thanks. Starting postgres with -P was something that I did not try. Does postgres have any GIN or GIST system indexes though?

I would love to try it out, but the database has already been restored. Will definitely keep this in mind for the future though.

Thanks again for the help,

--
Robert Sosinski

On Wednesday, October 3, 2012 at 10:44 AM, Merlin Moncure wrote:

> On Wed, Oct 3, 2012 at 9:33 AM, Robert Sosinski
> <rsosinski(at)ticketevolution(dot)com (mailto:rsosinski(at)ticketevolution(dot)com)> wrote:
> > We are running Postgres 9.1.3, and after stopping it by physically shutting
> > off the machine, we rebooted and now get this error whenever we try to start
> > it.
> >
> > 2012-10-02 13:54:30 PDT LOG: database system was interrupted; last known up
> > at 2012-10-02 13:46:20 PDT
> > 2012-10-02 13:54:30 PDT LOG: database system was not properly shut down;
> > automatic recovery in progress
> > 2012-10-02 13:54:30 PDT LOG: redo starts at A/764C4C0
> > 2012-10-02 13:54:30 PDT PANIC: GIN metapage disappeared
> > 2012-10-02 13:54:30 PDT CONTEXT: xlog redo Update metapage, node:
> > 1663/899422/21182896 blkno: 2
> > 2012-10-02 13:54:30 PDT LOG: startup process (PID 940) was terminated by
> > signal 6: Aborted
> > 2012-10-02 13:54:30 PDT LOG: aborting startup due to startup process
> > failure
> > 2012-10-02 14:42:49 PDT LOG: database system was interrupted while in
> > recovery at 2012-10-02 13:54:30 PDT
> > 2012-10-02 14:42:49 PDT HINT: This probably means that some data is
> > corrupted and you will have to use the last backup for recovery.
> > 2012-10-02 14:42:49 PDT LOG: database system was not properly shut down;
> > automatic recovery in progress
> > 2012-10-02 14:42:49 PDT LOG: redo starts at A/764C4C0
> > 2012-10-02 14:42:49 PDT PANIC: GIN metapage disappeared
> > 2012-10-02 14:42:49 PDT CONTEXT: xlog redo Update metapage, node:
> > 1663/899422/21182896 blkno: 2
> > 2012-10-02 14:42:49 PDT LOG: startup process (PID 954) was terminated by
> > signal 6: Aborted
> > 2012-10-02 14:42:49 PDT LOG: aborting startup due to startup process
> > failure
> >
> > I guess it is a problem with an index, because it is saying that there in a
> > GIN metapage missing. Any idea how to get postgres to boot up after it gets
> > into this condition without having to recover from a backup? Would
> > upgrading to 9.2 prevent this issue from happening again?
> >
>
>
> You an boot it up in single user mode and force a reindex:
> "One way to do this is to shut down the server and start a single-user
> PostgreSQL server with the -P option included on its command line.
> Then, REINDEX DATABASE, REINDEX SYSTEM, REINDEX TABLE, or REINDEX
> INDEX can be issued, depending on how much you want to reconstruct. If
> in doubt, use REINDEX SYSTEM to select reconstruction of all system
> indexes in the database. Then quit the single-user server session and
> restart the regular server. See the postgres reference page for more
> information about how to interact with the single-user server
> interface."
>
> (via http://www.postgresql.org/docs/9.2/static/sql-reindex.html)
>
> Not sure if things have been improved in 9.2 -- historically gist/gin
> haven't been as robust in terms of WAL/crash recovery IIRC.
>
> merlin

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message hartrc 2012-10-03 15:12:25 PostgreSQL force create table / ignore constraints?
Previous Message Andreas Kretschmer 2012-10-03 14:51:59 Re: Upgrading 8.3-rc1 to 8.3.20