postgres7.2で、xlogが壊れた時はpg_resetxlogを使う

pg_resetxlogを使うとpgdataが吹っ飛ぶを先に読む事

/home/postgres% pg_ctl start
DEBUG: open of /data/pgdata/pg_xlog/000000040000009D (log file 4, segment 157) failed: No such file
or directory
DEBUG: invalid primary checkpoint record
DEBUG: open of /data/pgdata/pg_xlog/000000040000009D (log file 4, segment 157) failed: No such file
or directory
DEBUG: invalid secondary checkpoint record
FATAL 2: unable to locate a valid checkpoint record
DEBUG: startup process (pid 1656) exited with exit code 2
DEBUG: aborting startup due to startup process failure

VMware緊急停止やpostgres緊急停止等やってたらpg_xlogが壊れた

postgres7.2はcontribの中のpg_resetxlogのMakefileをmakeしてから使わなければならない

/usr/local/src/postgresql-7.2.8/contrib/pg_resetxlog# ls
Makefile README.pg_resetxlog pg_resetxlog.c
/usr/local/src/postgresql-7.2.8/contrib/pg_resetxlog# make
/usr/local/src/postgresql-7.2.8/contrib/pg_resetxlog% ls
Makefile README.pg_resetxlog pg_crc.c pg_crc.o pg_resetxlog pg_resetxlog.c pg_resetxlog.o
/usr/local/src/postgresql-7.2.8/contrib/pg_resetxlog% ./pg_resetxlog -f /data/pgdata/
XLOG reset.