Re: How to recover when can't start database

From: "Colin E(dot) Freas" <cef6(at)georgetown(dot)edu>
To: pgsql-admin(at)postgresql(dot)org
Subject: Re: How to recover when can't start database
Date: 2005-06-10 15:33:13
Message-ID: 42A9B2B9.80907@georgetown.edu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin


Sorry if this post winds up as a duplicate on the list...

---

In an effort to disable all of the foreign key restraints on a set of
tables in my installation of PostgreSQL 8.0.1, I was fiddling with the
pg_class table and managed to elicit behavior similar to what L.
Boldareva ran into.

(This is Red Hat AS 4; Opteron w/4GB...)

pg_ctl can start and stop my postmaster, but I can't use psql to access
a database. When I try, I get this on the command line:
---
psql: server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
---
...and this in the log:
---
2005-06-07 16:44:37 EDTLOG: connection received: host=[local] port=
2005-06-07 16:44:37 EDTLOG: connection authorized: user=postgres
database=caarray
2005-06-07 16:44:43 EDTLOG: server process (PID 14278) was terminated
by signal 11
2005-06-07 16:44:43 EDTLOG: terminating any other active server processes
2005-06-07 16:44:43 EDTLOG: all server processes terminated; reinitializing
2005-06-07 16:44:43 EDTLOG: database system was interrupted at
2005-06-07 16:34:46 EDT
2005-06-07 16:44:43 EDTLOG: checkpoint record is at 0/81F18770
2005-06-07 16:44:43 EDTLOG: redo record is at 0/81F18770; undo record
is at 0/0; shutdown TRUE
2005-06-07 16:44:43 EDTLOG: next transaction ID: 6196113; next OID: 6226772
2005-06-07 16:44:43 EDTLOG: database system was not properly shut down;
automatic recovery in progress
2005-06-07 16:44:43 EDTLOG: record with zero length at 0/81F187AC
2005-06-07 16:44:43 EDTLOG: redo is not required
2005-06-07 16:44:43 EDTLOG: database system is ready
---
I think I know exactly what caused this. Postmaster seemed to crash
after I ran these two updates on pg_class:
---
2005-06-07 16:02:38 EDTLOG: statement: update pg_class set
reltriggers=foo.c from (select relname,count(tgrelid) as c from
pg_class,pg_trigger where pg_class.oid=tgrelid and relnamespace=2200
group by relname) foo;
2005-06-07 16:03:21 EDTLOG: statement: update pg_class set
reltriggers=foo.c from (select relname,count(tgrelid) as c from
pg_class,pg_trigger where pg_class.oid=tgrelid and relnamespace=2200
group by relname) foo where pg_class.relnamespace=2200;
2005-06-07 16:03:22 EDTLOG: connection received: host=[local] port=
2005-06-07 16:03:22 EDTLOG: connection authorized: user=postgres
database=caarray
2005-06-07 16:03:22 EDTLOG: server process (PID 12845) was terminated
by signal 11
2005-06-07 16:03:22 EDTLOG: terminating any other active server processes
---

If I can't ever get this database back up and running, it's no big
deal... this isn't something in production, and I wouldn't do this on a
production machine. However, it would save me enough time to get this
working that I'm trying this list. The only possible saving grace I
seem to have is that immediately before I ran the updates, I made a copy
of the pg_class table. So, if the only problem is the pg_class table,
then I'm thinking I could just copy the valid data back in, and be more
careful next time. But, right now, I can't even get the server to talk
to me.

Also, if there's an easier way to disable and re-enable the foreign key
constraints, I'd certainly appreciate the tip as well.

Any help appreciated.

Colin Freas

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Bricklen Anderson 2005-06-10 15:35:29 Re: select * and save into a text file failed
Previous Message Lee Wu 2005-06-10 15:24:58 select * and save into a text file failed