dbTalk Databases Forums  

Recovering data from corrupted table. Urgent Help!!

comp.databases.postgresql.general comp.databases.postgresql.general


Discuss Recovering data from corrupted table. Urgent Help!! in the comp.databases.postgresql.general forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
ruben20@superguai.com
 
Posts: n/a

Default Recovering data from corrupted table. Urgent Help!! - 10-13-2004 , 08:56 AM






Hi:

Is there any way to recover data from a corrupted table? I can only run
SELECTs on certain WHERE conditions.

I cannot vacuum, pg_dump, I've deleted the indexes and try to reindex,
always get error:

ERROR: could not access status of transaction 4244329
DETAIL: could not open file "/usr/local/pgsql/data/pg_clog/0004": No
existe el fichero o el directorio

Thanks a lot.



---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

http://www.postgresql.org/docs/faqs/FAQ.html


Reply With Quote
  #2  
Old   
Gaetano Mendola
 
Posts: n/a

Default Re: Recovering data from corrupted table. Urgent Help!! - 10-13-2004 , 09:54 AM






ruben20 (AT) superguai (DOT) com wrote:
Quote:
Hi:

Is there any way to recover data from a corrupted table? I can only run
SELECTs on certain WHERE conditions.

I cannot vacuum, pg_dump, I've deleted the indexes and try to reindex,
always get error:

ERROR: could not access status of transaction 4244329
DETAIL: could not open file "/usr/local/pgsql/data/pg_clog/0004": No
existe el fichero o el directorio

Thanks a lot.
Again:


create an empty file:

# touch /usr/local/pgsql/data/pg_clog/0004

at this point postgres will complain about the fact that an offset is missing,

at this point fill with 0 your file ( blocks of 8K ) till reach that offset reclaimed.



Regards
Gaetano Mendola




Reply With Quote
  #3  
Old   
Gaetano Mendola
 
Posts: n/a

Default Re: Recovering data from corrupted table. Urgent Help!! - 10-13-2004 , 09:57 AM



Gaetano Mendola wrote:
Quote:
ruben20 (AT) superguai (DOT) com wrote:

Hi:

Is there any way to recover data from a corrupted table? I can only
run SELECTs on certain WHERE conditions.

I cannot vacuum, pg_dump, I've deleted the indexes and try to reindex,
always get error:

ERROR: could not access status of transaction 4244329
DETAIL: could not open file "/usr/local/pgsql/data/pg_clog/0004": No
existe el fichero o el directorio

Thanks a lot.


Again:


create an empty file:

# touch /usr/local/pgsql/data/pg_clog/0004

at this point postgres will complain about the fact that an offset is
missing,

at this point fill with 0 your file ( blocks of 8K ) till reach that
offset reclaimed.
I forgot to suggest you to do:

dd bs=8k count=1 < /dev/zero >> /usr/local/pgsql/data/pg_clog/0004

you have to repeat this command till the offset is covered.



Regards
Gaetano Mendola








Reply With Quote
  #4  
Old   
Martijn van Oosterhout
 
Posts: n/a

Default Re: Recovering data from corrupted table. Urgent Help!! - 10-13-2004 , 10:21 AM



Create a file with that name filled with zeros with the same length as
the other files in that directory. That should get you far enough to
dump the data. Then run a complete set of memory and disk checks on
your system...

On Wed, Oct 13, 2004 at 02:56:37PM +0100, ruben20 (AT) superguai (DOT) com wrote:
Quote:
Hi:

Is there any way to recover data from a corrupted table? I can only run
SELECTs on certain WHERE conditions.

I cannot vacuum, pg_dump, I've deleted the indexes and try to reindex,
always get error:

ERROR: could not access status of transaction 4244329
DETAIL: could not open file "/usr/local/pgsql/data/pg_clog/0004": No
existe el fichero o el directorio

Thanks a lot.



---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

http://www.postgresql.org/docs/faqs/FAQ.html
--
Martijn van Oosterhout <kleptog (AT) svana (DOT) org> http://svana.org/kleptog/
Quote:
Patent. n. Genius is 5% inspiration and 95% perspiration. A patent is a
tool for doing 5% of the work and then sitting around waiting for someone
else to do the other 95% so you can sue them.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQFBbUf+Y5Twig3Ge+YRAogRAKCSUDlH1FJq09ShsITqeN 5iClDaYACgpzII
FvTIPKtBUXuoME7+g+Vtq1M=
=ZVvW
-----END PGP SIGNATURE-----



Reply With Quote
  #5  
Old   
ruben
 
Posts: n/a

Default Re: Recovering data from corrupted table. Urgent Help!! - 10-13-2004 , 03:02 PM



Hi Gaetano:

This procedure to recover data from a corrupted table should be
documented somewhere... If it is, I could not find it!

Now I wonder if I have lost any data, because after creating the
pg_clog/0004 and running VACCUM everything seems ok.

Thanks a lot for your help.
Ruben.

Quote:
Gaetano Mendola wrote:

ruben20 (AT) superguai (DOT) com wrote:


Hi:

Is there any way to recover data from a corrupted table? I can only
run SELECTs on certain WHERE conditions.

I cannot vacuum, pg_dump, I've deleted the indexes and try to reindex,
always get error:

ERROR: could not access status of transaction 4244329
DETAIL: could not open file "/usr/local/pgsql/data/pg_clog/0004": No
existe el fichero o el directorio

Thanks a lot.


Again:


create an empty file:

# touch /usr/local/pgsql/data/pg_clog/0004

at this point postgres will complain about the fact that an offset is
missing,

at this point fill with 0 your file ( blocks of 8K ) till reach that
offset reclaimed.


I forgot to suggest you to do:

dd bs=8k count=1 < /dev/zero >> /usr/local/pgsql/data/pg_clog/0004

you have to repeat this command till the offset is covered.

Regards
Gaetano Mendola



---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend



Reply With Quote
  #6  
Old   
Gaetano Mendola
 
Posts: n/a

Default Re: Recovering data from corrupted table. Urgent Help!! - 10-14-2004 , 04:09 AM



ruben wrote:
Quote:
Hi Gaetano:

This procedure to recover data from a corrupted table should be
documented somewhere... If it is, I could not find it!
First of all the table was not corrupted, the glitch was in another
subsystem.
The procedure is documented in the archives :-(

I agree with you but any cure seems worst then the disease. You have understand
why the file 0004 was not anymore there, did you had a power failure for
example ?

Quote:
Now I wonder if I have lost any data, because after creating the
pg_clog/0004 and running VACCUM everything seems ok.
Normally you didn't lost any data.


Regards
Gaetano Mendola


PS: I had the same error for the first time in my postgres usage life
only after ( some weeks after ) having upgrade from a 7.4.2 -> 7.4.5



Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.