Thread: invalid page header
Hi folks! I have a problem again, now with PostgreSQL 7.3.4. One of my 1.8 million rows tables have damaged, it operated all the day and now it is off, we don`t know the reason. When we try to dump or select from it, it says 'Invalid page header in block 12345 in prep'. Does anybody know how to make our table healthy again? I have read oin the manual about pg_resetxlog, it says it may fix the problem, but I should use it only as last solution. What is the risk of using it? May it damage other tables? Thanks in advance, Laszlo Hornyak
Hornyak Laszlo <kocka@tigrasoft.hu> writes: > I have a problem again, now with PostgreSQL 7.3.4. One of my 1.8 million > rows tables have damaged, it operated all the day and now it is off, we > don`t know the reason. When we try to dump or select from it, it says > 'Invalid page header in block 12345 in prep'. > Does anybody know how to make our table healthy again? You could zero out that page (while the postmaster is stopped, preferably) but you ought to first try to figure out what data you are going to lose. Dumping the page with pg_filedump might provide some clues. See this thread for a recent exercise in file-dumping: http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&threadm=20030922162322.E12708%40quartz.newn.cam.ac.uk&rnum=8&prev=/groups%3Fq%3Dpg_filedump%26hl%3Den%26lr%3D%26ie%3DUTF-8%26selm%3D20030922162322.E12708%2540quartz.newn.cam.ac.uk%26rnum%3D8 Or you could just use dd; since the page header is corrupt, it's unlikely that pg_filedump will be able to give you anything smarter than a bare hex/ascii dump (-d mode), which dd and od could do as well. regards, tom lane