Thread: corrupted database?

corrupted database?

From
"P. A. Bagyenda"
Date:
I am in the middle of a rather nasty experience that I hope someone
out
there can help solve.

 My hard disk partition with the postgres data directory got full. I
tried to shut down postgres so I could clear some space, nothing
happened. So I did a reboot. On restart (after clearing some
pg_sorttemp.XX files), I discovered that all my tables appear empty!
When I check in the data directories of the databases, I see that the
files for each table have data (they are still of the size as before).

 I've been running some experiments on another machine and notice that
if I remove the pg_log file, databases seem to disappear (or data to
become invisible). So I am guessing that postgres is looking in one
place and deciding there is no data. Now I need to get my data of
course! Any solutions?? My programming skills are generally very good
so
if it involves some code I'd have no problem. How do I get a dump of
the
raw data (saw copy-style output) from the table files? Please help!

 Thanks

Paul Bagyenda

Re: corrupted database?

From
Tom Lane
Date:
"P. A. Bagyenda" <bagyenda@dsmagic.com> writes:
>  My hard disk partition with the postgres data directory got full. I
> tried to shut down postgres so I could clear some space, nothing
> happened. So I did a reboot. On restart (after clearing some
> pg_sorttemp.XX files), I discovered that all my tables appear empty!

Were you foolish enough to remove pg_log as well?  If so, all your
past transactions now appear uncommitted ...

Bryan White had this same problem awhile ago --- see
http://www.arcamax.com/pg_check/ for the tool he developed.
Bear in mind though that you cannot get back a consistent state
of the database, because the info about which transactions committed
and which didn't is gone.  If you have a somewhat recent backup, it's
probably better to revert to that.

            regards, tom lane