dbTalk Databases Forums  

Invalid page header

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


Discuss Invalid page header in the comp.databases.postgresql.general forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Ed L.
 
Posts: n/a

Default Invalid page header - 10-20-2004 , 06:34 PM






I have 5 corrupted page headers as evidenced by these errors:

ERROR: Invalid page header in block 13947 of ...

The corruption is causing numerous queries to abort. First option is to try
to salvage data before attempt restore from backup. I want to try to edit
the file to zero out the bogus headers. I realize there may be data lost
from this attempt. I have scalpel (binary editor) in hand.

Which bytes should I edit, and what do I make them?


$ pg_filedump -if -R 1343 1343 25268878.38650946

************************************************** ***************
* PostgreSQL File/Block Formatted Dump Utility - Version 1.1
*
* File: 25268878.38650946
* Options used: -if -R 1343 1343
*
* Dump created on: Wed Oct 20 19:14:06 2004
************************************************** ***************

Block 1343 ************************************************** ****
<Header> -----
Block Offset: 0x00a7e000 Offsets: Lower 0 (0x0000)
Block: Size 0 Version 0 Upper 0 (0x0000)
LSN: logid 0 recoff 0x00000000 Special 0 (0x0000)
Items: -5 Free Space: 0
Length (including item array): 24

Error: Invalid header information.

0000: 00000000 00000000 00000000 00000000 ................
0010: 00000000 00000000 ........

<Data> ------
Error: Item index corrupt on block. Offset: <-5>.

<Special Section> -----
Error: Invalid special section encountered.
Error: Special section points off page. Unable to dump contents.

*** End of Requested Range Encountered. Last Block Read: 1343 ***


---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo (AT) postgresql (DOT) org so that your
message can get through to the mailing list cleanly


Reply With Quote
  #2  
Old   
Ed L.
 
Posts: n/a

Default Re: Invalid page header - 10-20-2004 , 07:34 PM






On Wednesday October 20 2004 5:34, Ed L. wrote:
Quote:
I have 5 corrupted page headers as evidenced by these errors:

ERROR: Invalid page header in block 13947 of ...

The corruption is causing numerous queries to abort. First option is to
try to salvage data before attempt restore from backup. I want to try to
edit the file to zero out the bogus headers. I realize there may be data
lost from this attempt. I have scalpel (binary editor) in hand.

Which bytes should I edit, and what do I make them?
In other words, how do I calculate which bytes to zero to simulate
zero_damaged_pages??

TIA.


Quote:

$ pg_filedump -if -R 1343 1343 25268878.38650946

************************************************** ***************
* PostgreSQL File/Block Formatted Dump Utility - Version 1.1
*
* File: 25268878.38650946
* Options used: -if -R 1343 1343
*
* Dump created on: Wed Oct 20 19:14:06 2004
************************************************** ***************

Block 1343 ************************************************** ****
Header> -----
Block Offset: 0x00a7e000 Offsets: Lower 0 (0x0000)
Block: Size 0 Version 0 Upper 0 (0x0000)
LSN: logid 0 recoff 0x00000000 Special 0 (0x0000)
Items: -5 Free Space: 0
Length (including item array): 24

Error: Invalid header information.

0000: 00000000 00000000 00000000 00000000 ................
0010: 00000000 00000000 ........

Data> ------
Error: Item index corrupt on block. Offset: <-5>.

Special Section> -----
Error: Invalid special section encountered.
Error: Special section points off page. Unable to dump contents.

*** End of Requested Range Encountered. Last Block Read: 1343 ***

---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddressHere" to majordomo (AT) postgresql (DOT) org)



Reply With Quote
  #3  
Old   
Tom Lane
 
Posts: n/a

Default Re: Invalid page header - 10-20-2004 , 11:00 PM



"Ed L." <pgsql (AT) bluepolka (DOT) net> writes:
Quote:
In other words, how do I calculate which bytes to zero to simulate
zero_damaged_pages??
Why simulate it, when you can just turn it on? But anyway, the answer
is "the whole page".

regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 7: don't forget to increase your free space map settings



Reply With Quote
  #4  
Old   
Ed L.
 
Posts: n/a

Default Re: Invalid page header - 10-20-2004 , 11:12 PM



On Wednesday October 20 2004 10:00, Tom Lane wrote:
Quote:
"Ed L." <pgsql (AT) bluepolka (DOT) net> writes:
In other words, how do I calculate which bytes to zero to simulate
zero_damaged_pages??

Why simulate it, when you can just turn it on? But anyway, the answer
is "the whole page".
Old 7.3.4 installation, didn't realize that feature was there. Thx.


---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo (AT) postgresql (DOT) org so that your
message can get through to the mailing list cleanly



Reply With Quote
  #5  
Old   
Ed L.
 
Posts: n/a

Default Re: Invalid page header - 10-20-2004 , 11:43 PM



On Wednesday October 20 2004 10:12, Ed L. wrote:
Quote:
On Wednesday October 20 2004 10:00, Tom Lane wrote:
"Ed L." <pgsql (AT) bluepolka (DOT) net> writes:
In other words, how do I calculate which bytes to zero to simulate
zero_damaged_pages??

Why simulate it, when you can just turn it on? But anyway, the answer
is "the whole page".

Old 7.3.4 installation, didn't realize that feature was there. Thx.
That worked for 3 of 4 cases, but for a fourth, I see the message that it's
zeroing the page, but then it continues to report invalid page header for
that block... maybe the header is too fouled up to fix?


Ed


---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo (AT) postgresql (DOT) org so that your
message can get through to the mailing list cleanly



Reply With Quote
  #6  
Old   
Ed L.
 
Posts: n/a

Default Re: Invalid page header - 10-21-2004 , 01:31 AM



On Wednesday October 20 2004 10:43, Ed L. wrote:
Quote:
On Wednesday October 20 2004 10:12, Ed L. wrote:
On Wednesday October 20 2004 10:00, Tom Lane wrote:
"Ed L." <pgsql (AT) bluepolka (DOT) net> writes:
In other words, how do I calculate which bytes to zero to simulate
zero_damaged_pages??

Why simulate it, when you can just turn it on? But anyway, the
answer is "the whole page".

Old 7.3.4 installation, didn't realize that feature was there. Thx.

That worked for 3 of 4 cases, but for a fourth, I see the message that
it's zeroing the page, but then it continues to report invalid page
header for that block... maybe the header is too fouled up to fix?
I didn't notice zero_damaged_pages because it doesn't show up by default in
the postgresql.conf file, I guess wisely since it is somewhat dangerous to
the forensic evidence.

I fixed the case that zero_damaged_pages didn't by truncating the file at
the precise byte offset reported by pg_filedump for the bad block via
'pg_filedump -if -R ...'

Ed



---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to majordomo (AT) postgresql (DOT) org



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.