> >> Are you interested in dumping out the page of pg_index that
> >> contains this record, using pg_filedump?
>
> > Sure, only how do I use pg_filedump?
>
> Find out the ctid of the busted pg_index record; the first part of it is
> the page number. Then
>
> pg_filedump -i -f -R page_number pg_index_filename >resultfile
>
> The filename is whatever "select relfilenode from pg_class where relname
> = 'pg_index'" tells you, in whatever subdirectory of $PGDATA/base
> "select oid from pg_database where datname = 'yourdb'" tells you.
mydb=# select ctid from pg_index where indrelid = 16737 and indexrelid = 604251;
ctid
--------
(1,11)
(1 row)
mydb=# select relfilenode from pg_class where relname = 'pg_index';
relfilenode
-------------
2610
(1 row)
mydb=# select oid from pg_database where datname = 'mydb';
oid
-------
16393
(1 row)
postgres@db_server01 ~ $ ./pg_filedump -i -f -R 1 /var/lib/pgsql/data/base/16393/2610 >
./results.log
I've attached the results.log to the email.
Regards,
Richard Broersma Jr.