how to recover corrupt data - Mailing list pgsql-admin

From Michael Adler
Subject how to recover corrupt data
Date
Msg-id 20040217153101.GB25887@pobox.com
Whole thread Raw
Responses Re: how to recover corrupt data
List pgsql-admin
The names of the participants have been changed to protect the innocent.

I'm trying to recover some lost data from this weekend. Apparently, we were able to INSERT into critical_table without
error,but not able to  SELECT, COPY, or VACUUM critical_table. I saved a copy of the PGDATA directory and restored from
abackup. 

Is there any way to extract this (possibly intact) data?


myuser@myhost:~$ vacuumdb -z -a
Vacuuming critical_db
WARNING:  Rel critical_table: TID 11193/1: OID IS INVALID. TUPGONE 1.
WARNING:  Rel critical_table: TID 11193/2: OID IS INVALID. TUPGONE 1.
WARNING:  Rel critical_table: TID 11193/3: OID IS INVALID. TUPGONE 1.
WARNING:  Rel critical_table: TID 11193/4: OID IS INVALID. TUPGONE 1.
WARNING:  Rel critical_table: TID 11193/5: OID IS INVALID. TUPGONE 1.
WARNING:  Rel critical_table: TID 11193/6: OID IS INVALID. TUPGONE 1.
WARNING:  Rel critical_table: TID 11193/7: OID IS INVALID. TUPGONE 1.
WARNING:  Rel critical_table: TID 11193/8: OID IS INVALID. TUPGONE 1.
WARNING:  Rel critical_table: TID 11193/9: OID IS INVALID. TUPGONE 1.
WARNING:  Rel critical_table: TID 11193/10: OID IS INVALID. TUPGONE 1.
WARNING:  Rel critical_table: TID 11193/11: OID IS INVALID. TUPGONE 1.
WARNING:  Rel critical_table: TID 11193/12: OID IS INVALID. TUPGONE 1.
WARNING:  Rel critical_table: TID 11193/13: OID IS INVALID. TUPGONE 1.
WARNING:  Rel critical_table: TID 11193/14: OID IS INVALID. TUPGONE 1.
WARNING:  Rel critical_table: TID 11193/15: OID IS INVALID. TUPGONE 1.
WARNING:  Rel critical_table: TID 11193/16: OID IS INVALID. TUPGONE 1.
WARNING:  Rel critical_table: TID 11193/17: OID IS INVALID. TUPGONE 1.
WARNING:  Rel critical_table: TID 11193/18: OID IS INVALID. TUPGONE 1.
WARNING:  Rel critical_table: TID 11193/19: OID IS INVALID. TUPGONE 1.
PANIC:  open of /var/lib/postgres/data/pg_clog/0455 failed: No such file or directory
server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.
connection to server was lost
vacuumdb: vacuum  critical_db failed
myuser@myhost:~$


myuser@myhost:~$ pg_dump -Rx critical_db > backup
pg_dump: ERROR:  MemoryContextAlloc: invalid request size 1396789829
pg_dump: lost synchronization with server, resetting connection
pg_dump: SQL command to dump the contents of table "critical_table" failed: PQendcopy() failed.
pg_dump: Error message from server: pg_dump: The command was: COPY public.critical_table ( ... column names here ... )
TOstdout; 
myuser@myhost:~$



critical_db=# SELECT count(*) from critical_table;
 count
--------
 677939
(1 row)
critical_db=# create table ct_backup as select * from critical_table;
server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.
The connection to the server was lost. Attempting reset: Failed.
!#


postgres@myhost:~$ postgres critical_db
LOG:  database system was shut down at 2004-02-17 09:13:34 EST
LOG:  checkpoint record is at 47/34F245FC
LOG:  redo record is at 47/34F245FC; undo record is at 0/0; shutdown TRUE
LOG:  next transaction id: 10038641; next oid: 39213744
LOG:  database system is ready
POSTGRES backend interactive interface
$Revision: 1.307.2.1 $ $Date: 2003/01/01 21:57:18 $
backend> create table ct_backup as select * from critical_table;
Segmentation fault


pgsql-admin by date:

Previous
From: Jeff Boes
Date:
Subject: pg_autovacuum bug with temp tables?
Next
From: "Priya G"
Date:
Subject: unsubscribe