Corruption in postgres 7.4 on solaris 2.9.

From: Gary Schlachter <Gary(dot)Schlachter(at)tavve(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Corruption in postgres 7.4 on solaris 2.9.
Date: 2008-12-02 21:46:53
Message-ID: 4935ACCD.8010208@tavve.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

I am running postgres 7.4 and solaris 2.9 and I fear I have a
corruption. The database runs fine for a while and then a command will
receive the following:

psql: FATAL: xlog flush request 8/20D70938 is not satisfied -- flushed
only to 6/FDBA6540
CONTEXT: writing block 180816 of relation 17143/17477

This occurs many times with the "flushed only to" value never changing.
Eventually the server must be restarted.

I tried using the pgfsck tool and get the following:

-- Detected database format 7.4
-- Loading pg_class structure
-- Scanning table pg_class (1259)
-- Table pg_class(1259):Page 0: Incorrect value in header (incorrect blocksize?)
-- 00 00 00 00 00 66 A6 70 00 00 00 0B 00 E4 01 50 20 00 20 01
-- Table pg_class(1259):Page 0: Incorrect value in header (incorrect blocksize?)
-- 00 00 00 00 00 66 D9 F0 00 00 00 0B 00 E4 01 90 20 00 20 01
-- Table pg_class(1259):Page 0: Incorrect value in header (incorrect blocksize?)
-- 00 00 00 00 00 67 6D F0 00 00 00 0B 00 E0 01 90 20 00 20 01
-- Table pg_class(1259):Page 0: Incorrect value in header (incorrect blocksize?)
-- 00 00 00 00 00 67 B4 A0 00 00 00 0B 00 D4 02 B0 20 00 20 01
Couldn't find class 'pg_attribute'

I believe the block size is 8192 and I have tried others to no avail. Is there a way to determine the corrupt area and remove it? I have read pg_filedump can help but I have not been able to find a Solaris version.

Gary

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Enrico Pirozzi 2008-12-02 22:22:05 returns numbers of record
Previous Message Joshua D. Drake 2008-12-02 20:51:15 Re: Postgres mail list traffic over time