pg_filedumpを触った

PostgreSQL Deep Dive / pg_filedumpでテーブル/インデックスファイルを覗いてみる を参考に。

rpmでインストールしたpostgresqlのバージョンは9.1.6。
先ずはソースを取得

postgresql

$ wget http://ftp.postgresql.org/pub/source/v9.1.6/postgresql-9.1.6.tar.gz
$ tar xvfz postgresql-9.1.6.tar.gz

pg_filedump

$ wget http://pgfoundry.org/frs/download.php/3182/pg_filedump-9.1.0.tar.gz
tar xvfz pg_filedump-9.1.0.tar.gz

pg_crc.cをコピー

$ cp postgresql-9.1.6/src/backend/utils/hash/pg_crc.c ../pg_filedump-9.1.0/
$ cd ../pg_filedump-9.1.0

makeする前にPGSQLパスの変更

$ vi Makefile
 PGSQL=../postgresql-9.1.6
$ make

するとpg_filedump の実行ファイルが出来上がる。

でこんな感じで実行

$ pg_filedump  /var/lib/pgsql/9.1/data/base/oid/filenode