Craig Ringer <craig@postnewspapers.com.au> writes:
> Kakoli Sen wrote:
>> It was running fine initially and the database was lying idle for a
>> few days. Today I looged into the machine and restarted the server by
>> killing the process by 'kill -9 pid'. And then restarted it by
>> 'postmaster -i -D /opt/pgsql/data/'.
>>
> Why did you use `kill -9' ?
Certainly not good practice, but theoretically PG should be proof
against even such deliberate abuse as that.
What seemed odd to me was
>> LOG: database system was interrupted at 2008-03-06 14:15:17 IST
>> LOG: record with incorrect prev-link 1/0 at 0/A4EB08
>> LOG: invalid primary checkpoint record
>> LOG: record with incorrect prev-link 42FD/0 at 0/A4EAC8
>> LOG: invalid secondary checkpoint record
Experimentation shows that a freshly initialized 7.4 database has
WAL locations like this:
Latest checkpoint location: 0/9DFCF0
Prior checkpoint location: 0/9D92C0
so either you'd only ever thrown a few kilobytes of stuff into the DB
or there was something seriously wrong with pg_control to begin with.
I'm wondering about mistaken filesystem restores ...
regards, tom lane