corrupted database?

Started by P. A. Bagyendaalmost 25 years ago2 messagesgeneral
Jump to latest
#1P. A. Bagyenda
bagyenda@dsmagic.com

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

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: P. A. Bagyenda (#1)
Re: corrupted database?

"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